Bei der PHP -Programmierung begegnen wir häufig auf die Notwendigkeit einer String -Suche, z. B. festzustellen, ob ein Substring in einer anderen Zeichenfolge vorhanden ist. PHP liefert dafür mehrere integrierte Funktionen. Die beiden am häufigsten verwendeten sind Strpos () und Strpos () . Obwohl ihre Verwendung sehr ähnlich aussieht, verhalten sie sich mit einem wesentlichen Unterschied: ob es sich um fallsempfindliche handelt.
Strpos () wird verwendet, um zu finden, wo eine Zeichenfolge zuerst in einer anderen Zeichenfolge erscheint. Diese Funktion ist Fallempfindlichkeit .
int|false strpos(string $haystack, string $needle, int $offset = 0)
$ haystack ist die Zielzeichenfolge, nach der man suchen muss.
$ nadel ist das Substring, nach dem man gesucht werden muss.
$ offset ist eine optionale Startposition.
$pos = strpos("Welcome to m66.net", "M");
if ($pos !== false) {
echo "Found at position $pos";
} else {
echo "Not found";
}
Die Ausgabe wird sein:
Not found
Der Grund dafür ist, dass "m" Großbuchstaben ist und "M" in der ursprünglichen Schnur in Kleinbuchstaben ist. Strpos () ist streng empfindlich, sodass es falsch zurückgibt.
Im Gegensatz zu Strpos () ist Strpos () eine von Fall unempfindliche Version. Es ist logisch genau konsistent, ignoriert nur den oberen und unteren Fall von Zeichen.
int|false stripos(string $haystack, string $needle, int $offset = 0)
$pos = stripos("Welcome to m66.net", "M");
if ($pos !== false) {
echo "Found at position $pos";
} else {
echo "Not found";
}
Dieser Code wird ausgegeben:
Found at position 0
Weil Stripos () "M" und "M" als die gleichen Charaktere behandelt.
Welche Funktion zu wählen ist, hängt von Ihren spezifischen Anforderungen ab:
Wenn Sie eine genaue Übereinstimmung benötigen, z. B. Überprüfung, ob eine Variable eine bestimmte Fallschreibung enthält (z. B. Passwortüberprüfung), ist die Verwendung von Strpos () besser geeignet.
Wenn Sie nur feststellen möchten, ob ein Schlüsselwort existiert , und sich nicht um den oberen und unteren Fall (z. B. in der Suchfunktion) kümmern , ist Stripos () bequemer.
$comment = "This is a stupid comment.";
$badword = "Stupid";
if (stripos($comment, $badword) !== false) {
echo "Warning: Inappropriate language detected.";
}
Dies kann in verschiedenen Fallkombinationen sensible Wörter effektiv erkennen.
Funktion | Fallempfindlichkeit | Rückgabewerttyp | verwenden |
---|---|---|---|
Strpos () | Ja | int oder falsch | Genaue Suche |
stripos () | NEIN | int oder falsch | Fallsuche ignorieren |
Wenn Sie den Unterschied zwischen ihnen verstehen und sie im richtigen Szenario verwenden, wird Ihr Code präziser und effizienter. Ich hoffe, dieser Artikel kann Ihnen helfen, den Unterschied zwischen diesen beiden Funktionen besser zu verstehen!