Vielen Dank im Voraus!
Colin
Ich hab das mal schnell für dich geschrieben. Lokal hats bei mir
funktioniert.
<?
// Volltextsuche in einem Verzeichnis
// benötigte funktionen
function instring($needle,$haystack) {
$extra = stristr($haystack,$needle);
if($extra != $haystack) {
return true;
} else {
return false;
}
}
function getext($string)
{
return substr(strrchr($string, '.'), 1);
}
// suchfunktion
function suchen($dir,$ext,$string) {
if($dh = @opendir($dir)) {
$dateien = array();
$ergebnisse = array();
$filecounter = 0;
$foundcount = 0;
// überprüfen, ob ein beistrich (trennzeichen) in der variable $ext
enthalten ist
if(instring(',',$ext) == true) {
$erweiterungen = explode(',',$ext);
while($file = readdir($dh)) {
if($file != '.' && $file != '..' &&
in_array(getext($file),$erweiterungen)) {
array_push($dateien,$file);
$filecounter++;
}
}
} else {
while($file = readdir($dh)) {
if($file != '.' && $file != '..' && getext($file) == $ext) {
array_push($dateien,$file);
$filecounter++;
}
}
}
if($filecounter == 0) {
array_push($ergebnisse,'no files');
} else {
foreach($dateien as $filename) {
if(instring($string,file_get_contents($dir.$filename)) == true) {
$in_doc_count =
substr_count(file_get_contents($dir.$filename),$string);
array_push($ergebnisse,$filename.' ('.$in_doc_count.'x gefunden)');
$foundcount++;
}
}
}
return $ergebnisse;
} else {
return array('no dir');
}
}
?>
Verwendung:
<?
$suche = suchen('system/sitehandler/','html','suchstring');
// suchen(Verzeichnis,Erweiterungen mit denen gesucht wird,Suchtext);
foreach($suche as $ergebnis)
{ // ausgabe mit
foreach()
echo $ergebnis.'<br>';
}
?>
Die Funktion gibt einfach aus: Dateien in denen der Suchstring gefunden
wurde und wie oft er gefunden wurde.
Würde mich über Feedback über die Funktion freuen, da ich sie jetzt grade
selbst geschrieben habe!
MFG,
Stephan Klein