Probleme mit Suchfunktion

schiese

Erfahrenes Mitglied
Hi,
ich habe Probleme mit meiner Suchfunktion. Sie durchsucht eine Textdatei nach einem Suchwort. Nur, ist das Wort kleiner als 3 Buchstaben, werden alle in der Textdatei enthaltenen Wörter "gefunden".
Ich bin noch absoluter Neuling und weiß nicht, wie ich es ändern kann. Die einzige Idee, die ich hatte, ist auch falsch, wie im Quelltext ersichtlich. :(

PHP:
<?php
if (!($_POST['eingabe']=="" && $_POST['eingabe'] >= 0)) {
	reset($_POST);
	foreach($_POST as $key=>$element) {
	${"form_$key"} = $element;
	}
$muster = "/$form_eingabe/i";
$ergebnis = preg_grep($muster, file('suche.txt'));
foreach ($ergebnis as $ausgabe) {
	echo "$ausgabe";
}
}
else{
echo "Bitte geben Sie ein Suchwort ein!";
}
?>

Danke, Gunnar
 
Ich kapier dein Problem nicht ganz. Grundsätzlich kannst du Textdateien allerdings so durchsuchen:
PHP:
<?php
$file = "daten.txt";
$found = explode($_POST["eingabe"], implode("", file($file)));

# Anzahl der gefundenen Wörter
echo "<p>Gefunden: ".(count($found) - 1)."</p>";

# Text ausgeben, wobei das gefundene Wort jeweils fett hervorgehoben wird
echo "<p>".implode("<b>".$_POST["eingabe"]."</b>", $found);

# Für jeden "Fund" das Wort mitsamt seiner Position ausgeben:
$pos = 0;
echo "<p>";
for($i=0; $i<count($found)-1; $i++) {
   $pos += strlen($found[$i]);
   echo $_POST["eingabe"]." (Position: ".$pos.")<br/>";
   $pos += strlen($_POST["eingabe"]);
}
echo "</p>";
?>
 
Zuletzt bearbeitet:
Danke split,
ich guck mir das mal an. Ich bin eigentlich mit meiner Suche zufrieden, nur zeigt sie halt alle in der Textdatei enthaltenen Wörter an, wenn das Suchwort kleiner als 3 Buchstaben ist.
PHP:
&& $_POST['eingabe'] >= 3
Ich wollte das ändern, indem ich obenstehendes eingefügt habe. Es funktioniert leider nur nicht.
Meine Frage ist nun, was daran falsch ist.

Gunnar
 
Zuletzt bearbeitet:
Änder deine Abfrage mal in:
PHP:
if($_POST["eingabe"] != "" && strlen($_POST["eingabe"]) >= 3)
Anmerkung: strlen() gibt die Länge einer Zeichenkette zurück.
 
Zurück