Mit php in einer Textdatei nach Treffern suchen und falls es mehrere sind auch alle auflisten
Ich habe folgendes Problem :
Ich habe eine Suchleiste, mit der ich ein Verzeichnis suchen kann und in einer Textdatei etwas was vor einem "|" steht. Dahinter ist ein link, der gelistet werden soll falls das was vor dem "|" steht das Suchwort ist.
textdatei
und so weiter
html code
php code
Nun möchte ich alle Treffer listen lassen (z.B ich habe nach Powerpoint1 gesucht, dann soll er mir alle drei links zeigen und nicht den ersten).
Hoffe ich habe es einigermaßen verständlich rüber gebracht :D
Ich habe eine Suchleiste, mit der ich ein Verzeichnis suchen kann und in einer Textdatei etwas was vor einem "|" steht. Dahinter ist ein link, der gelistet werden soll falls das was vor dem "|" steht das Suchwort ist.
textdatei
Powerpointww2 | http://meineseite.net/datei1.ppt
Powerpointgeld | http://meineseite.net/datei2.ppt
Powerpointrussland| http://meineseite.net/datei3.ppt
Powerpointjfk | http://meineseite.net/datei4.ppt
Powerpoint1 | http://meineseite.net/datei5.ppt
Powerpoint1 | http://meineseite.net/datei6.ppt
Powerpoint1 | http://meineseite.net/datei7.ppt
Powerpointsolarenergie | http://meineseite.net/datei8.ppt
Powerpointww1 | http://meineseite.net/datei93ppt
html code
<div id"hiersollshin"></div>
02.
<form action="suchen.php" method="post" name="search"><input type="text" size="10" maxlength="50" name="search" value=""><input type="submit" value="OK"></div></form>
php code
<?php
//username die variable für das gesuchte wort
$username = $_POST["search"];
//dateiordner
$content = file_get_contents('./Upload/4suche.txt');
// Eintrag finden
preg_match('/^'.preg_quote($username).'\s*\|\s*(.*)/im',$content,$matches);
// Wenn Eintrag gefunden wurde...
if ($matches){
echo 'Eintrag gefunden: URL = '.$matches[1].'<br>';
}else{
echo "Kein passender Eintrag.";
}
?>
Nun möchte ich alle Treffer listen lassen (z.B ich habe nach Powerpoint1 gesucht, dann soll er mir alle drei links zeigen und nicht den ersten).
Hoffe ich habe es einigermaßen verständlich rüber gebracht :D
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 287730
Url: https://administrator.de/contentid/287730
Ausgedruckt am: 25.11.2024 um 14:11 Uhr
2 Kommentare
Neuester Kommentar
Hatte ich dir schon via PM geschickt ...
preg_match_all() is your friend ... kurzer Blick in die Funktionen hätte genügt
Gruß grexit
preg_match_all() is your friend ... kurzer Blick in die Funktionen hätte genügt
<?php
$username = $_POST["search"];
$content = file_get_contents('./Upload/4suche.txt');
preg_match_all('/^('.preg_quote($username).')\s*\|\s*(.*)/im',$content,$matches);
if (count($matches[2])){
for($i = 0; $i < count($matches[2]);$i++){
echo 'Eintrag gefunden: URL = '.$matches[2][$i] ."<br>";
}
}else{
echo "Kein passender Eintrag.";
}
?>