PHP strpos nicht überprüfen, erste Wort
Ich versuche zu tun, einige Validierung in PHP, und einer von Ihnen ist die überprüfung, ob es ein bestimmtes Wort in der eingegebenen Zeichenkette oder nicht.
Das problem ist, mein code scheint nicht zu funktionieren, wenn ich die angegebene Wort zuerst.
hier der code:
$word = "aa bb cc dd";
if(strpos($word, 'aa') == false)
{
echo "wrong input";
}
aber wenn ich die $word
entweder bb aa cc dd
oder bb cc dd aa
es funktioniert. Ich Frage mich, wie man dieses Problem beheben wenn.
- Siehe die Warnung in der PHP-Anleitung für diese Funktion. Hinweis:
===
(drei): php.net/strpos - vielen Dank für Ihre Hilfe! ich weiß nicht, die Handbuch-website, bevor, obwohl, so bin ich immer
strpos
von einer anderen Website(die in den Beispielen benutzt keine===
. deswegen war ich verwirrt mit diesem 🙂 danke für alle Antworten aber ! ^^ Sie hilft wirklich. Frage mich, warum bekomme ich minus, nur weil diese Frage aber >.> diese Nachteile schreckt mich Fragen, wenn ich bin verwirrt >.> - Gut, wenn sich verwirrt mit einer bestimmten Funktion, konsultieren Sie das Handbuch und lies die ersten, zumindest würde ich dir vorschlagen, dass. Sie können Fragen, was immer Sie wollen, eines Tages könnten Sie Fragen, eine gute Frage, und Sie bekommen eine Menge von upvotes statt. Oder Sie platzieren eine gute Antwort.
- da bekam ich den link nun, ich denke, ich werde überprüfen Sie es zuerst, statt der Suche, ohne zu wissen, was ich wollte, zu suchen 🙂 danke für die Anregung aber werden versuchen, das zu tun 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
strpos
false zurück, wenn die Zeichenfolge nicht vorhanden ist. Andernfalls gibt es die position der Zeichenfolge.In diesem Fall 'aa' am Anfang des Strings, was bedeutet, dass es an der position 0; und 0 zu false ausgewertet wird.
Müssen Sie einen booleschen vergleichen auf das Ergebnis:
Weil
strpos
gibt die position des Wortes, in diesem Fall 0. 0 ist falsey.==
wird nicht überprüft, ob identische übereinstimmungen===
tut. So verwenden Sie eine dreifach gleich.Sogar die docs.
strpos
ist 0 zurückgeben, wie 'aa' ist die 0. Charakter. Als0 == false
aber NICHT===
falsch (es ist nicht boolean) verwenden, benötigen Sie===
statt==
.Sollten Sie den strikten Vergleichsoperator, wird dieses match gegen die gleiche Art, also mit
===
wird prüfen, ob es einen booleschen Wert:Mit
==
ist ein loser Vergleich, kann alles angegeben werden, wahr (abgesehen vontrue
,1
,string
), z.B.Der Grund, warum es falsch ist, weil es den Vergleich einer Zeichenkette mit einer Boolean-gibt false.
Da die position der
aa
0 gleich zufalse
.Müssen Sie verwenden:
if(strpos($word, 'aa') === false)
Fügen Sie ein Leerzeichen vor dem Suchbegriff und finden Sie mehr als 0-position