Hallo,
ich hab mir ein Skript gebastelt, welches mir eine *.txt Datei ausliest und alle Zeilen der Reihe nach auflistet und noch geichzeitig durchnummereriert.
Wie ihr euch jetzt denken könnt, ist das ganze Teil jetzt recht lahm geworden und braucht etwa 20 Sec. bis die Seite komplett ausgelesen ist.
Zustzlich hab ich noch ne Suchfunktion, die ebenfalls alle Einträge der Datei durchsucht und die Treffer dann listet und ebenfalls nummerriert.
Dadurch ist das Skript nun so langsam, dass ich öfter timeout Fehler bekomme (php.ini timeout steht bei 30 sec.).
kann mir evtl. jemand helfen wie ich sowas schneller gestalten kann (also irgendwie alle Daten einfach in ein Array legen oder so welches ich dann gleichzeitig durchsuchen und komplett ausgeben kann oder so).
Steh etwas auf dem Schlauch gerade, hab auch schon einies getestet, was aber alles nicht zufriedenstellend arbeitet.
Hier mal der Link
und noch der Code:
ich hab mir ein Skript gebastelt, welches mir eine *.txt Datei ausliest und alle Zeilen der Reihe nach auflistet und noch geichzeitig durchnummereriert.
Wie ihr euch jetzt denken könnt, ist das ganze Teil jetzt recht lahm geworden und braucht etwa 20 Sec. bis die Seite komplett ausgelesen ist.
Zustzlich hab ich noch ne Suchfunktion, die ebenfalls alle Einträge der Datei durchsucht und die Treffer dann listet und ebenfalls nummerriert.
Dadurch ist das Skript nun so langsam, dass ich öfter timeout Fehler bekomme (php.ini timeout steht bei 30 sec.).
kann mir evtl. jemand helfen wie ich sowas schneller gestalten kann (also irgendwie alle Daten einfach in ein Array legen oder so welches ich dann gleichzeitig durchsuchen und komplett ausgeben kann oder so).
Steh etwas auf dem Schlauch gerade, hab auch schon einies getestet, was aber alles nicht zufriedenstellend arbeitet.
Hier mal der Link
und noch der Code:
PHP-Code:
<?php
#################################################################################
//Wandeln des eingegebenen Suchwortes in die "suchfreundliche" Variante
$suchwort=$_POST[suche];
function sonderzeichen($string)
{
$string = strtolower($string);
$string = str_replace("ä", "ae", $string);
$string = str_replace("ü", "ue", $string);
$string = str_replace("ö", "oe", $string);
$string = str_replace("ß", "ss", $string);
$string = str_replace("´", "", $string);
$string = preg_replace('/\s/', '', $string);
$string = preg_replace('/\!/', '', $string);
$string = preg_replace('/\-/', '', $string);
$string = preg_replace('/\./', '', $string);
return $string;
}
//$lines = file($datei);
if(!empty($suchwort)){
$len=strlen($suchwort);
if($len<=2){
echo'<blockquote>Das Suchwort muss mindestes 3 Zeichen haben!<br><br>
>> <a href="javascript:history.back()">zurück zur Sucheingabe</a> <<</blockquote>';
exit;
}
$string=$suchwort;
$suchwort= sonderzeichen($string);
###############################################################################
//Zähler für die Übersicht über die gefundenen Einträge
$zahl="1";
foreach($lines as $line) {
$arr2 = explode("-",$line);
$string=$arr2[0];
$text= sonderzeichen($string);
if(strstr($text, $suchwort)){
$zahl++;
}
}
$zahl=$zahl-1;
#########################################################################
//Ausgabe der gefundenen Einträge!!!
//$zahl=$zahl-1;
echo'<center>>><a href="#suche">zur Suche
springen</a><<</center><br><br><font color="#FFFFFF">
Es wurden <font color="#FF0000" size="3">'.$zahl.'</font>
Einträge gefunden, die den Begriff
<font color="#FF0000" size="3">'.$suche.'</font>
enthalten!</font><br><br>';
###################################################################################
//Die eigentliche Suche und anschliessende Ausgabe der Ergebnisse
$i=1;
foreach($lines as $line) {
$arr = explode("-",$line);
$string=$arr[0];
$text= sonderzeichen($string);
if(strstr($text, $suchwort)){
echo '<font color="#FFFFFF">#'.$i.' - '.$line.'</font><br>';
$i++;
}
}
}
########################################################################
//Suchfeld
echo'
<a name="suche"></a><br>
<form action="liste.php" method="post">
<table border="0" cellpadding="0" cellspacing="5" bgcolor="#333333">
<tr>
<td><b><font color="#FFFFFF">Nach Interpreten suchen:</font></b></td>
</tr>
<tr>
<td><input name="suche" type="text"> <input
name="suchen" type="submit" value="suchen"></td>
</tr>
</table><br>
</form>
';
######################################################################################
//Liste aller Einträge in der playlist.txt wird erstellt
if($liste==ja){
//$handle=fopen($datei, "r");
$i = 1;
while(!empty($array[$i])){
echo'# '.$i.'<b> - </b>'.$array[$i].'<br>';
$i++;
}
}
?>
EDIT:
by TobiaZ: Auch du kannst wohl deinen Code umbrechen!
Kommentar