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-Key: 287730

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

Printed on: April 19, 2024 at 16:04 o'clock

Mitglied: 122990
Solution 122990 Nov 06, 2015 updated at 19:42:47 (UTC)
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
Member: ANTiNATOR
ANTiNATOR Nov 06, 2015 at 19:42:52 (UTC)
Goto Top
du bist mein held :*