Aktueller Standort: Startseite> Neueste Artikel> Wie verwendete ich die Funktion MB_Stristal, um die von Fall unempfindliche String-Suche zu implementieren?

Wie verwendete ich die Funktion MB_Stristal, um die von Fall unempfindliche String-Suche zu implementieren?

M66 2025-08-04

Wie verwendete ich die Funktion MB_Stristal , um die von Fall unempfindliche String-Suche zu implementieren?

In PHP ist String Manipulation eine sehr häufige und wichtige Aufgabe. Um eine flexiblere String -Verarbeitung zu erzielen, bietet PHP viele nützliche Funktionen. Eine davon ist die MB_STRSTR -Funktion, die ein Substring in einer multibyten-codierten Zeichenfolge finden kann und falls unempfindlich ist. Diese Funktion wird hauptsächlich verwendet, um Zeichenfolgen wie UTF-8 oder andere Multibyte-Zeichensätze zu verarbeiten.

1. Einführung in die MB_Stristal -Funktion

MB_STRSTR ist eine Multibyte-Versionsfunktion in PHP zur Ausführung von Fall-unempfindlichen String-Lookups. Ähnlich wie bei der normalen STRSTR -Funktion gibt MB_STRSTR auch den Teil zurück, in dem das angegebene Substring zuerst erscheint. Der Unterschied besteht darin, dass es den Multibyte -Zeichen korrekt verarbeiten kann.

Funktionsprototyp:

 <span><span><span class="hljs-title function_ invoke__">mb_stristr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$before_needle</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
  • $ haystack : Dies ist die Zielzeichenfolge, nach der man suchen muss.

  • $ nadel : Dies ist das Substring, nach dem Sie suchen.

  • $ vor_needle : Wenn auf true eingestellt, ist die zurückgegebene Zeichenfolge das Teil von $ haystack bis hin zu dem ersten erscheint $ nadle . Der Standard ist falsch , was das Teil nach $ nadel zurückgibt.

  • $ codierung : Gibt die Zeichencodierung an (wenn nicht angegeben, besteht die Standardeinstellung darin, interne Zeichencodierungseinstellungen zu verwenden, normalerweise UTF-8).

2. Beispielcode

Hier ist ein einfaches Beispiel, das zeigt, wie die MB_STRSTR -Funktion verwendet wird, um Fall-unempfindliche Substrings zu finden.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Setzen Sie die Codierung auf UTF-8</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>(</span><span><span class="hljs-string">"UTF-8"</span></span><span>);

</span><span><span class="hljs-comment">// Zielzeichenfolge</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Hello, Welt! Welcome to PHP."</span></span><span>;

</span><span><span class="hljs-comment">// Substring gefunden werden</span></span><span>
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"world"</span></span><span>;

</span><span><span class="hljs-comment">// verwenden mb_stristr Substrings finden,Fall unempfindlich</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_stristr</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Substring gefunden: "</span></span><span> . </span><span><span class="hljs-variable">$result</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Kein Substring gefunden。"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

erklären:

  1. mb_internal_encoding ("utf-8") setzt die interne Zeichencodierung auf UTF-8, wodurch sichergestellt wird, dass Multibyte-Zeichenfolgen korrekt verarbeitet werden.

  2. Wir verwenden MB_STRSTR ($ Haystack, $ nadle), um $ nadle in $ haystack zu suchen. Da MB_Stristur von Fall unempfindlich ist, werden sowohl "Welt" als auch "Welt" als passend angesehen.

  3. Wenn ein passender Substring gefunden wird, gibt die Funktion das Teil von der passenden Position bis zum Ende der Zeichenfolge zurück. Wenn nicht gefunden, falsch .

3.. Verarbeiten Sie Multibyte -Charaktere

Ein wichtiges Merkmal von mb_strist ist, dass es Multibyte-Zeichensätze (wie UTF-8, SJIS usw.) korrekt verarbeiten kann. Dies macht es zuverlässiger als Strrist im Umgang mit Nicht-ASCII-Saiten.

Angenommen, wir suchen nach chinesischen Charakteren:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Zielzeichenfolge包含中文字符</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Ich mag programmieren。"</span></span><span>;

</span><span><span class="hljs-comment">// Finden"wie"Substring</span></span><span>
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"wie"</span></span><span>;

</span><span><span class="hljs-comment">// Finden并返回匹配部分</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_stristr</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Substring gefunden: "</span></span><span> . </span><span><span class="hljs-variable">$result</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Kein Substring gefunden。"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

In diesem Beispiel erkennt MB_Stristr das Multibyte -Zeichen "Like" korrekt und gibt den nachfolgenden Abschnitt aus dem Substring zurück.

4.. Dinge zu beachten

  • Charaktercodierung : Stellen Sie sicher, dass die Charaktercodierung von $ haystack und $ nadel konsistent ist, insbesondere bei Multibyte -Zeichensets. Wenn die Codierung nicht übereinstimmt, kann dies zu unvergleichlichen oder falschen Ergebnissen führen.

  • Leistungsüberlegungen : Im Vergleich zu gewöhnlichen Stristrierungsfunktionen kann die Leistung von MB_stristry geringfügig minderwertig sein, insbesondere bei der Suche in großen Textmengen. Es sollte auf der Grundlage der tatsächlichen Bedingungen berücksichtigt werden.

  • Nicht zur ursprünglichen Position zurückkehren : Im Gegensatz zu Funktionen wie MB_STRPOS gibt MB_STRSTR ein Substring zurück, der vom Matching -Punkt ab dem Matching -Punkt beginnt, nicht aus der Position. Wenn Sie den Standort erhalten müssen, können Sie MB_STRPOS oder MB_STRRPOS (umgekehrte Lookup) verwenden.

5. Zusammenfassung

MB_STRISTR ist eine sehr nützliche Funktion in PHP, die es uns ermöglicht, Fall-unempfindliche Suchvorgänge in Zeichenfolgen von Multibyte-Zeichensätzen auszuführen. Indem wir diese Funktion vernünftigerweise verwenden, erleichtert es uns, UTF-8 oder andere codierte Zeichenfolgen zu verarbeiten und eine flexible Zeichenfolgenanpassung durchzuführen.