Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Text außerhalb von HTML-Tags mithilfe regulärer PHP-Ausdrücke sicher ersetzen?

Wie kann ich Text außerhalb von HTML-Tags mithilfe regulärer PHP-Ausdrücke sicher ersetzen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-26 16:08:13430Durchsuche

How to Safely Replace Text Outside HTML Tags Using PHP Regular Expressions?

So schließen Sie Übereinstimmungen innerhalb von HTML-Tags in regulären PHP-Ausdrücken aus

Beim Durchführen einer Suche und Ersetzung mit regulären Ausdrücken in einem HTML-Dokument ist dies unerlässlich um sicherzustellen, dass durch die Ersetzung nicht versehentlich HTML-Tags geändert werden. Um dieser Herausforderung zu begegnen, finden Sie hier eine Lösung mit einer Lookahead-Assertion in regulären PHP-Ausdrücken:

$pattern = "/(asf|foo|barr)(?=[^>]*(<|$))/";

Erklärung:

  • Mustergruppierung: Das Muster umfasst drei mögliche Suchbegriffe (asf, foo und barr). Klammern.
  • Lookahead-Behauptung: Die Lookahead-Behauptung (?=[^>]*(<|$)) stimmt mit jedem Vorkommen der Suchbegriffe überein, auf die eine beliebige Anzahl von folgt nicht-> Zeichen (bis zu, aber ausschließlich einem <) oder das Ende der Zeile.

Daher ignoriert dieser reguläre Ausdruck Übereinstimmungen, die innerhalb von HTML-Tags auftreten, und verhindert so wirksam unerwünschte Änderungen am HTML Struktur. Der Ausdruck kann innerhalb von preg_replace() verwendet werden, um selektiv Text außerhalb von HTML-Tags anzusprechen.

Betrachten Sie beispielsweise den folgenden HTML-Text:

<a href="example.com" alt="yasar home page">yasar</a>

Verwenden Sie die Funktion preg_replace() mit dem Mit dem bereitgestellten Muster können Sie das Vorkommen von yasar außerhalb des Anker-Tags durch ein benutzerdefiniertes Span-Tag ersetzen, was zu Folgendem führt:

<a href="example.com" alt="yasar home page">yasar</a>
yasar

In diesem Fall Beispielsweise bleibt das Alt-Attribut innerhalb des Anker-Tags unverändert.

Das obige ist der detaillierte Inhalt vonWie kann ich Text außerhalb von HTML-Tags mithilfe regulärer PHP-Ausdrücke sicher ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn