ich habe recht wenig Ahnung mit php und bin auch grad dabei es zu erlernen. Ich möchte nun eine Datei suche haben, hab aber nirgends was gefunden. Diese soll so aufgebaut sein:
Textbox = Suchbegriff bzw. Teil eines Dateinamens. Wird z.B. wei eingegeben, findet er alle Dateien die mit wei anfangen. Man könnte noch eine Combobox einbauen, in der man die Suche noch mit Dateitypen verfeinern könnte aber das muss nicht sein.
In der Combobox wo Test 1-3 drin steht, werden die Ordner wie im folgenden Bild ausgelesen und reingeschrieben. Je nachdem welchen Ordner man auswählt wird in ihm gesucht.
und der Suche Button startet die suche
2 nützliche Sachen noch: Wenn kein Suchbegriff eingegeben wurde, ne kleine Textausgabe, es wurde noch kein Suchbegriff eingegeben oder Suche noch nicht gestartet etc.
Nr2: Wenn nichts gefunden werden konnte, nen kleiner Text, es wurde nichts gefunden.
Um euch die Arbeit zu erleichtern, hab ich hier schon zwei Sachen gefunden, die funktionieren aber noch nicht so richtig, vielleicht kann der ein oder andere ja was damit anfangen:
Nr 1:
- Code: Alles auswählen
<form action="" method="post">
Ordner: <select name=ordner>
<?
chdir ("covers");
$open = opendir(".");
while ($row = readdir($open)){
if (filetype($row) == dir){
echo "<option value=$row>$row</option>
";
}
}
?>
</select> . = Root - Verzeichnis
<br>
Suche<input type="text" name="sw">
<input type="submit" name="submit" value="Suchen">
</form>
<p></p>
<?php
if($submit){
$open = opendir("$ordner");
while ($row = readdir($open)){
if(preg_match ("/$sw/", $row))
{
echo "<br>found | ". @filetype($row)." : <b>$row</b> ";
$_1 = @filesize($row);
$_2 = $_1 / 1024;
echo "<br>".$_2." KiloBytes";
echo "<br>Download : <a href=$ordner/$row>$row</a> ";
echo "<br><br>";
}
}
}
else
{
die("<p><em><b>-----------------------------------------------------------------------------------------------------------------------</b></em></p><br>Noch keine Suchanfrage gestartet<br><p><em><b>-----------------------------------------------------------------------------------------------------------------------</b></em></p>");
}
?>
Code Nr.2 (Auszug von http://forum.pchilfe.net/viewtopic.php?t=61)
- Code: Alles auswählen
<?php
/*Einen Default Wert für Pfad setzen, wenn
*1. der Pfad noch nicht gesetzt wurde
*2. die Pfad Variable leer ist
*3. die Pfad Variable ".." enthält(aus sicherheits gründen, damit man nicht einfach
*"script.php?Pfad=../../" eingeben kann und dann noch den kompletten pfad vor dem
*Script sieht)*/
if(!isset($_GET['Pfad']) || empty($_GET['Pfad']) || preg_match("|\.\.|", $_GET['Pfad']))
{
$_GET['Pfad']=".";
}
/*Speichern des Formulars in 2 Variablen, zur leichteren Ausgabe und erstellung der
*Ordner <option>'s*/
$ausgabe1='<form action="'.$_SERVER['PHP_SELF'].'" method="GET">
Suche: <input type="text" name="suche"><br />
Ordner<select size="1" name="Pfad"><option value=".">Selbst';
$ausgabe2='</select><br/>
<input type="submit">
</form><br />';
//Wenn das Verzeichnis geöffnet werden konnte, dann
if($Verzeichniszeiger=opendir($_GET['Pfad']))
{
/*wird das Verzeichnis Datei weise solange eingelesen, bis wir durch das gesamte
*Verzeichnis durch sind*/
while($Datei=readdir($Verzeichniszeiger))
{
/*Wenn die momentane Datei nich "." oder ".." ist(sind die bezeichner des
*aktuellen und des übergeordneten verzeichnisses)*/
if ($Datei!="." && $Datei!="..")
{
//wird überprüft, um die "suche" leer ist
if(empty($_GET['suche']))
{
//wenn es ein Verzeichnis ist,
if(is_dir($Datei))
{
/*wird an $ausgabe2 das öffnen eines roten <font> tags angefügt
*und an $ausgabe1 ein <option> tag mit dem verzeichnis namen*/
$ausgabe2.="<font color=\"red\">";
$ausgabe1.='<option>'.$Datei;
}
//nun wird der link an $ausgabe2 angehängt
$ausgabe2.="<a href='".$_GET['Pfad']."/".$Datei."'>".$Datei."</a><br />";
/*und wenn es ein verzeichnis ist ein schließender </font> tag an
*$ausgabe2 angefügt*/
if(is_dir($Datei))
{
$ausgabe2.="</font>";
}
}
//wenn die suche nicht leer ist
else
{
/*erstellen wir eine such regel für preg_match, die alles findet,
*was das wort(oder die buchstaben kombination) in sich hat, wobei
*groß- und kleinschreibung unwichtig sind*/
$match="*".$_GET['suche']."*i";
//nur wenn in der aktuellen $Datei das preg_match etwas findet
if(preg_match($match, $Datei))
{
/*wird geprüft, ob es sich um ein verzeichnis handelt. falls ja,
*fügen wir einen öffnenden roten <font> tag an $ausgabe2 an*/
if(is_dir($Datei))
{
$ausgabe2.="<font color=\"red\">";
}
//nun wird der link an $ausgabe2 angehängt
$ausgabe2.="<a href='".$_GET['Pfad']."/".$Datei."'>".$Datei."</a><br />";
/*und wenn es ein verzeichnis ist ein schließender </font> tag an
*$ausgabe2 angefügt*/
if(is_dir($Datei))
{
$ausgabe2.="</font>";
}
}
/*wenn es ein verzeichnis ist, wird noch ein entsprechender <option>
*tag an $ausgabe1 angehängt*/
if(is_dir($Datei))
{
$ausgabe1.='<option>'.$Datei;
}
}
}
}
//schließen des verzeichnisses
closedir($Verzeichniszeiger);
}
//und ausgeben der beiden ausgaben
echo $ausgabe1.$ausgabe2;
?>
na dann viel Spaß beim Coden und bitte entäuscht mich nicht, ich frag jetzt hier, weils 3 Leute nicht geschafft haben.