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
Please also mark the comments that contributed to the solution of the article
Content-Key: 287730
Url: https://administrator.de/contentid/287730
Printed on: April 19, 2024 at 22:04 o'clock
2 Comments
Latest comment
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.";
}
?>