Aktueller Standort: Startseite> Neueste Artikel> Praktische Tipps und Methoden zum Entfernen bestimmter Teile aus Zeichenfolgen mithilfe der MB_STRSTR -Funktion

Praktische Tipps und Methoden zum Entfernen bestimmter Teile aus Zeichenfolgen mithilfe der MB_STRSTR -Funktion

gitbox 2025-08-26

In PHP müssen wir bei der Verarbeitung von Zeichenfolgen häufig bestimmte Teile aus einer Zeichenfolge löschen. Die Funktion mb_strstr () ist eine Multibyte-Verarbeitungsfunktion, die bei der Behandlung von Nicht-ASCII-Zeichen besonders nützlich ist. In diesem Artikel wird vorgestellt, wie die Funktion mb_strstr () verwendet wird, um den angegebenen Teil aus einer Zeichenfolge zu löschen.

1. Einführung in die Funktion mb_strstr ()

mb_strstr () ist eine Multibyte-String-Funktion, die der regulären strst () -Funktion ähnelt, jedoch für Multibyte-Zeichensätze (wie UTF-8, Shift-JIS usw.) ausgelegt ist. Wenn wir daher Strings mit nicht englischen Zeichen verarbeiten müssen, ist mb_strstr () stabiler und zuverlässiger.

Grammatik:

 <span><span><span class="hljs-title function_ invoke__">mb_strstr</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 : Die Zielzeichenfolge, nach der man suchen muss.

  • $ nadel : Das zu findene Substring.

  • $ vor_needle (optional): Wenn Sie auf TRUE gesetzt sind, geben Sie das Teil vor der Nadel zurück, andernfalls geben Sie das Teil nach der Nadel zurück.

  • $ codierung (optional): Gibt die Zeichencodierung an, Standardeinstellung ist mb_internal_encoding () .

2. Entfernen Sie den angegebenen Teil aus der Zeichenfolge

Angenommen, wir haben eine Zeichenfolge und wollen einen Teil davon löschen. Wir können den Teil mit mb_strstr () finden und ihn dann durch Stringoperationen entfernen.

Beispiel: Entfernen Sie das angegebene Substring aus der Zeichenfolge

Angenommen, wir haben die folgende Zeichenfolge:

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Ich lerne gernePHPProgrammierung"</span></span><span>;
</span></span>

Wir hoffen, den Teil "Lernen" zu löschen. Wir können zuerst mb_strstr () verwenden, um den Ort dieses Substrings zu finden und dann die entsprechende Verarbeitung durchzuführen.

Code -Implementierung:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Ich lerne gernePHPProgrammierung"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"Studie"</span></span><span>;

</span><span><span class="hljs-comment">// verwendenmb_strstrFinden"Studie"Wo zu erscheinen soll</span></span><span>
</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_strstr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-comment">// Wenn gefunden"Studie",Entfernen Sie diesen Teil</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$position</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-comment">// Löschen Sie die Zeichenfolge"Studie"Teil</span></span><span>
    </span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-title function_ invoke__">mb_strpos</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>)) . </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-title function_ invoke__">mb_strpos</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>) + </span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-variable">$needle</span></span><span>));
    </span><span><span class="hljs-keyword">echo</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">"没有找到指定的Teil"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Ergebnis:

 <span><span>Ich magPHPProgrammierung
</span></span>

3. Verwenden Sie mb_strstr () , um das Teil nach dem Substring zu löschen

Wenn wir nur den Teil nach dem Substring löschen möchten, können wir den Parameter PROW_NEEDLE der Funktion mb_strstr () verwenden.

Beispiel: Löschen Sie das Teil nach dem Substring

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Ich lerne gernePHPProgrammierung"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"Studie"</span></span><span>;

</span><span><span class="hljs-comment">// Erhalten"Studie"前的Teil</span></span><span>
</span><span><span class="hljs-variable">$before</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_strstr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$before</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Ergebnis:

 <span><span>Ich mag
</span></span>

4. Beispiel für das Löschen mehrerer Substrings

Wenn wir mehrere verschiedene Substrings aus der Zeichenfolge entfernen müssen, können wir MB_STRSTR () und andere String -Manipulationsfunktionen in Kombination verwenden. Wir können Aufgaben effizient durch Schleifen und reguläre Ausdrücke erledigen.

Beispiel: Mehrere Substrings löschen

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Ich lerne gernePHPProgrammierung和WebEntwicklung"</span></span><span>;
</span><span><span class="hljs-variable">$needles</span></span><span> = [</span><span><span class="hljs-string">"Studie"</span></span><span>, </span><span><span class="hljs-string">"Web"</span></span><span>];

</span><span><span class="hljs-comment">// Mehrere Substrings löschen</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$needles</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>) {
    </span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_replace</span></span><span>(</span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-string">""</span></span><span>, </span><span><span class="hljs-variable">$str</span></span><span>);
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Ergebnis:

 <span><span>Ich magPHPProgrammierung和Entwicklung
</span></span>

5. Dinge zu beachten

  • mb_strstr () ist für Multi-Byte-Zeichensätze optimiert. Es funktioniert normalerweise besser als das herkömmliche Strstr (), wenn es sich um Charakter -Sets handelt, einschließlich Chinesen, Japanisch, Koreanisch usw.

  • Stellen Sie bei der Verarbeitung von Multibyte -Zeichen sicher, dass das korrekte Codierungsformat angegeben ist, andernfalls können die Ergebnisse ungenau sein.

  • In einigen Fällen können Sie unter Verwendung von mb_substr () und mb_strpos () in Kombination die Löschungsposition der Zeichenfolge genau steuern.

Abschluss

Durch die Funktion mb_strstr () können wir den angegebenen Teil einfach aus der Zeichenfolge löschen, insbesondere im Multi-Byte-Zeichenszenario, das einen sehr signifikanten Effekt hat. Wenn Sie diese Techniken verstehen und beherrschen, werden Sie nicht nur beim Umgang mit Strings effizienter, sondern auch einige häufige Codierungsprobleme vermeiden.