tombe
Erfahrenes Mitglied
Hallo an alle,
ich bin gerade dabei ein Suchformular zu erstellen.
Hier gibt es ein Textfeld in welches die Suchbegriffe durch Komma getrennt eingegeben werden. Wobei Wörter die kürzer als 3 Zeichen sind nicht berücksichtigt werden sollen.
Die Begriffe werden mit explode in ein Array aufgeteilt und dann sollen mit array_filter die zu kurzen Worte gelöscht werden.
Wenn ich jetzt eingebe "Hund, Katze, xy" wird "xy" zwar herausgefiltert aber bei Katze bleibt das führende Leerzeichen stehen und bei var_dump mit einer Länge von 6 Zeichen angegeben.
Jetzt die zwei Fragen:
Warum wird "xy" gefiltert wo doch mit dem Leerzeichen die min. Länge von 3 Zeichen auch erreicht ist?
Warum wird die TRIM-Anweisung in der Funktion nicht ausgeführt?
Danke schonmal
Thomas
ich bin gerade dabei ein Suchformular zu erstellen.
Hier gibt es ein Textfeld in welches die Suchbegriffe durch Komma getrennt eingegeben werden. Wobei Wörter die kürzer als 3 Zeichen sind nicht berücksichtigt werden sollen.
Die Begriffe werden mit explode in ein Array aufgeteilt und dann sollen mit array_filter die zu kurzen Worte gelöscht werden.
PHP:
$suchbegriff = explode(",", $_POST["suche"]);
$suchbegriff = array_filter($suchbegriff, "len_suche");
var_dump($suchbegriff);
function len_suche($begriff) {
//so sollte es eigentlich sein damit Leerzeichen keine falsche Länge verursachen
$begriff = trim($begriff);
if (strlen($begriff) < 3) {
return false;
} else {
return trim($begriff);
}
}
Wenn ich jetzt eingebe "Hund, Katze, xy" wird "xy" zwar herausgefiltert aber bei Katze bleibt das führende Leerzeichen stehen und bei var_dump mit einer Länge von 6 Zeichen angegeben.
Jetzt die zwei Fragen:
Warum wird "xy" gefiltert wo doch mit dem Leerzeichen die min. Länge von 3 Zeichen auch erreicht ist?
Warum wird die TRIM-Anweisung in der Funktion nicht ausgeführt?
Danke schonmal
Thomas