Hallo,
habe ein Suchscript für meine Webseite eingebunden, dass aber irgendwie mit Fehlern behaftet ist. Ich habe alle Fehler entfernen können, nur zwei Zeilen im Script, wo einer Variable mit .= ein Wert zugewiesen wird, spuckt eine Fehlermeldung aus. Die Suche funktioniert zwar, aber es sieht natürlich unschön aus, wenn da Fehler erscheinen.
Mache ich den Punkt vor dem = weg, kommt zwar die Fehlermedung nicht mehr, dafür funktioniert die Suchfunktion nicht mehr. Dies sind die die entsprechenden Zeilen:
und
DAs hier ist der komplette Code (entschuldigt mich, dass ich alles reinposte, aber ich denke mal, dass man so das Prob besser versteht!)
<?php
//Welcher Dateityp soll durchsucht werden?
$dateityp = ".htm"; //= alle HTML-Dateien (.htm, .html, .shtml)
//Wenn alternativ PHP-Dateien durchsucht werden sollen, geben Sie unter $dateityp .php ein.
if(empty($search)) {$search=$_POST['search'];}
if(strlen($search) < "3")
{echo "Geben Sie bitte einen Suchbegriff von mindestens 3 Buchstaben Länge ein.";exit;}
$found = "0";
$verz = opendir('.');
while($file = readdir($verz))
{
if($file != '.' && $file != '..' && !is_dir($file))
{
$filetype = stristr($file, $dateityp);
if(!empty($filetype))
{
$string = file_get_contents($file);
$string = html_entity_decode($string);
$string = strtolower($string);
$search = strtolower($search);
$test = substr_count($string, $search);
if(!empty($test))
{
$string = ereg_replace("\n", "", $string);
$string = strip_tags($string);
$pieces = explode($search, $string);
$piece1 = substr($pieces[0], -50);
$piece1 = explode(" ", $piece1);
array_shift($piece1);
$piece1 = implode(" ", $piece1);
$piece2 = substr($pieces[0], 0, 100);
$piece2 = explode(" ", $piece2);
array_pop($piece2);
$piece2 = implode(" ", $piece2);
$rest = "$piece1<b>$search</b>$piece2";
$array .= "<b>$test Fundstelle/n</b> <br>$rest <br><a href=\"$file\" target=\"_self\" class=\"link\"> >> $file</a><br><br>\n";
$found ++;
}}}}
closedir($verz);
if($found != "0")
{
echo "Es wurden <strong>$found</strong> Treffer gefunden sortiert nach der Häufigkeit des Vorkommens des Suchbegriffs:<br><br>";
$array = explode("\n", $array);
natsort($array);
reset($array);
$array = array_reverse($array);
while(list($line_num, $line) = each($array))
{
$ausgabe .= "$line\n";
}
print $ausgabe;
}
if($found == "0")
{ echo "Es wurden leider keine Übereinstimmungen mit dem eingegebenen Suchbegriff gefunden !";}
?>
habe ein Suchscript für meine Webseite eingebunden, dass aber irgendwie mit Fehlern behaftet ist. Ich habe alle Fehler entfernen können, nur zwei Zeilen im Script, wo einer Variable mit .= ein Wert zugewiesen wird, spuckt eine Fehlermeldung aus. Die Suche funktioniert zwar, aber es sieht natürlich unschön aus, wenn da Fehler erscheinen.
Mache ich den Punkt vor dem = weg, kommt zwar die Fehlermedung nicht mehr, dafür funktioniert die Suchfunktion nicht mehr. Dies sind die die entsprechenden Zeilen:
PHP-Code:
$array .= "<b>$test Fundstelle/n</b> <br>$rest <br><a href=\"$file\" target=\"_self\" class=\"link\">
>> $file</a><br><br>\n";
PHP-Code:
$ausgabe .= "$line\n";
<?php
//Welcher Dateityp soll durchsucht werden?
$dateityp = ".htm"; //= alle HTML-Dateien (.htm, .html, .shtml)
//Wenn alternativ PHP-Dateien durchsucht werden sollen, geben Sie unter $dateityp .php ein.
if(empty($search)) {$search=$_POST['search'];}
if(strlen($search) < "3")
{echo "Geben Sie bitte einen Suchbegriff von mindestens 3 Buchstaben Länge ein.";exit;}
$found = "0";
$verz = opendir('.');
while($file = readdir($verz))
{
if($file != '.' && $file != '..' && !is_dir($file))
{
$filetype = stristr($file, $dateityp);
if(!empty($filetype))
{
$string = file_get_contents($file);
$string = html_entity_decode($string);
$string = strtolower($string);
$search = strtolower($search);
$test = substr_count($string, $search);
if(!empty($test))
{
$string = ereg_replace("\n", "", $string);
$string = strip_tags($string);
$pieces = explode($search, $string);
$piece1 = substr($pieces[0], -50);
$piece1 = explode(" ", $piece1);
array_shift($piece1);
$piece1 = implode(" ", $piece1);
$piece2 = substr($pieces[0], 0, 100);
$piece2 = explode(" ", $piece2);
array_pop($piece2);
$piece2 = implode(" ", $piece2);
$rest = "$piece1<b>$search</b>$piece2";
$array .= "<b>$test Fundstelle/n</b> <br>$rest <br><a href=\"$file\" target=\"_self\" class=\"link\"> >> $file</a><br><br>\n";
$found ++;
}}}}
closedir($verz);
if($found != "0")
{
echo "Es wurden <strong>$found</strong> Treffer gefunden sortiert nach der Häufigkeit des Vorkommens des Suchbegriffs:<br><br>";
$array = explode("\n", $array);
natsort($array);
reset($array);
$array = array_reverse($array);
while(list($line_num, $line) = each($array))
{
$ausgabe .= "$line\n";
}
print $ausgabe;
}
if($found == "0")
{ echo "Es wurden leider keine Übereinstimmungen mit dem eingegebenen Suchbegriff gefunden !";}
?>
Kommentar