antinator
Goto Top

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
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
und so weiter

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

Content-ID: 287730

Url: https://administrator.de/contentid/287730

Ausgedruckt am: 25.11.2024 um 14:11 Uhr

122990
Lösung 122990 06.11.2015 aktualisiert um 20:42:47 Uhr
Goto Top
Hatte ich dir schon via PM geschickt ...
preg_match_all() is your friend ... kurzer Blick in die Funktionen hätte genügt face-wink
<?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.";	  
}
?>
Gruß grexit
ANTiNATOR
ANTiNATOR 06.11.2015 um 20:42:52 Uhr
Goto Top
du bist mein held :*