Jacka
Erfahrenes Mitglied
Hallo zusammen,
Kommandozeilenprogramm zum Quiz#1 "Unscharfe Suche" in PHP:
Kommandozeilenprogramm zum Quiz#1 "Unscharfe Suche" in PHP:
PHP:
<?php
/*
* Kommandozeilenprogramm [Quiz#1] "Unscharfe Suche"
* Dateiname: suche.php
* Erstellt von: Jacka
* Datum: 19.08.08
* Aufruf im PHP-Verzeichnis: php -f suche.php "[Suchtext]"
*/
if(empty($argv[1])) {
echo "Keine Eingabe!"; // Wenn kein Parameter angegeben
}
else {
echo "\n Suchergebnis: \n";
echo UnscharfeSuche($argv[1], "presidents.txt"); // Funktion aufrufen
}
function UnscharfeSuche($suchstr, $datei) {
$suchfeld = ImportText($datei); // Suchfeld einlesen
if(empty($suchfeld)) {
return "Kein Suchfeld vorhanden!"; // Wenn Textdatei leer, Fehler ausgeben
}
else {
$laenge = strlen($suchstr); // Länge des Suchstrings
for($y=0;$y<count($suchfeld);$y++) {
$pos = 0; // Position auf 0 setzten
$lenIndex = 0; // Längenindex auf 0 setzten
for($i=0;$i<$laenge;$i++) {
$pos = strpos($suchfeld[$y],$suchstr[$i],$pos); // Suche Buchstabe im Text ab Position x
$pos++; // Position um eins erhöhen
if(!empty($pos)) {
$lenIndex++; // lenIndex um eins erhöhen, wenn Position vorhanden
}
}
if($lenIndex == $laenge) { // Alle Zeichen gefunden?
$result .= $suchfeld[$y]."\n";
}
}
if(!empty($result)) {
return $result; // Ergebnisrückgabe
}
else {
return "Keine Uebereinstimmung gefunden!"; // Kein Suchergebnis
}
}
}
function ImportText($datei) {
if(file_exists($datei)) {
$zeiger = fopen($datei, "r");
while(!feof($zeiger)) {
$txtArray[] = fgets($zeiger); // Zeilenweise auslesen in array
}
fclose($zeiger);
return $txtArray;
}
}
?>
Zuletzt bearbeitet: