Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Such Script für txt
Frage
Hallo. Ich habe ein Script welches eine Textdatei durchsuchen sollte und wenn das gesuchte in der Datei gefunden wurde soll halt was spezielles ausgeführt werden.
Das Script zeigt nur das an was ich möchte wenn ich nach dem ersten Wort in der Textdatei suche.
Wie bekomme ich das hin das jede Zeile durchsucht und verarbeitet wird?
[code]<?php
if(isset($_POST[´search´]))
{
$fp = fopen("./index.txt","r"); // Datei öffnen
if ($fp)
{
while(!feof($fp))//Solange bis der Dateizeiger am Ende der Datei ist
{
$zeile = fgets($fp,100);//Einlesem der Zeilen
if(trim($zeile) == $look)
{ echo ´<body link="#00FF00" vlink="#00FF00" alink="#00FF00" text="#000032" bgcolor="#FF7F50" oncontextmenu="return false">´;
echo ´<center><iframe src ="./index2.php?x=´.$look.´"width="560" noresize scrolling=no FRAMEBORDER=NO BORDER=0 FAMESPACING=0 height="315"></iframe> </center><br>´;
exit; }
if(trim($zeile) != $look)
{ echo ´<body link="#00FF00" vlink="#00FF00" alink="#00FF00" text="#000032" bgcolor="#FF7F50" oncontextmenu="return false">´;
echo "Das gesuchte Fahrzeug konnte leider nicht gefunden werden!";
exit; }
}
fclose($fp); // Datei schließen
}
else
{
echo "Datei wurde nicht gefunden"; // Sollte Datei nicht vorhanden sein
}
}
?>
<body link="#00FF00" vlink="#00FF00" alink="#00FF00" text="#000032" bgcolor="#FF7F50" oncontextmenu="return false">
<form enctype="multipart/form-data" method="POST" action="./look.php">
Fahrzeug suchen:<br>
<input name="look" size="40"><br>
<input type="submit" value="Suchen" name="search">
</form> [/code]
Antwort 1 von SkyBenni
Hallo!
Erstmal würde ich die POST Variablen als solche kennzeichen bzw mit Array verwenden, einfach um das Script auch auf Servern bei denen register_globals auf 0 steht laufen zu lassen können.
-> $_POST[´look´]
Dann würde ich einfach jedes Wort einer Zeile in ein Array schreiben und dann bei jeden Wert des Arrays gegenüber dem Suchwert überprüfen.
Ungetestet! Sollte es Fragen geben:
skybenni [AT] crystal-design [DOT] net
SkyBenni
P.S.: Mir sei verziehen, dass ich nicht durchkommentiert habe. Allerdings ruft der Strand....
Erstmal würde ich die POST Variablen als solche kennzeichen bzw mit Array verwenden, einfach um das Script auch auf Servern bei denen register_globals auf 0 steht laufen zu lassen können.
-> $_POST[´look´]
Dann würde ich einfach jedes Wort einer Zeile in ein Array schreiben und dann bei jeden Wert des Arrays gegenüber dem Suchwert überprüfen.
$suche_true = 0;
while(!feof($fp))
{
$zeile = fgets($fp,100);
$wort = explode(" ",$zeile);
for ($k=1; $k<count($wort); $k++)
{
if ($wort[$k] == $_POST[´look´]
{
$suche_true = 1;
}
}
}
switch($suche_true)
{
case ´1´:
$return = ´Suche erfolgreich! <br /><iframe [...]´;
break;
case ´0´:
$return = ´Keine Übereinstimmungen gefunden!´;
break;
}
echo($return);
Ungetestet! Sollte es Fragen geben:
skybenni [AT] crystal-design [DOT] net
SkyBenni
P.S.: Mir sei verziehen, dass ich nicht durchkommentiert habe. Allerdings ruft der Strand....
Antwort 2 von SkyBenni
Sry, nochmal querdrüber gelesen,
Dort hat auf jeden Fall eine Klammer gefehlt.
Und das Array beginnt auch nicht bei 1 sondern bei 0.
Peinlich. Sehr peinlich.
hoffe dass ich nciht nochmehr beim nächsten "read-thru" finde.
SkyBenni
if ($wort[$k] == $_POST[´look´] )Dort hat auf jeden Fall eine Klammer gefehlt.
for ($k=0; $k<count($wort); $k++) Und das Array beginnt auch nicht bei 1 sondern bei 0.
Peinlich. Sehr peinlich.
hoffe dass ich nciht nochmehr beim nächsten "read-thru" finde.
SkyBenni

