<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// In diesem Artikel wird erläutert, wie man es benutztPHPInternpreg_matchFunktionen zu extrahierenHTML源码Intern特定标签Inhalt。</span></span><span>
</span><span><span class="hljs-comment">// preg_matchEs ist ein leistungsstarkes reguläres Ausdrucks -Matching -Tool,Geeignet für einfache Musteranpassungen。</span></span><span>
</span><span><span class="hljs-comment">// Jedoch,Für komplexHTMLStruktur,Empfohlen zu verwendenDOMDocumentStabilere Methoden。</span></span><span>
</span><span><span class="hljs-comment">// Dieser Artikel wird zu Lernzwecken dienen,ausstellenpreg_matchexistieren提取标签Intern基本用法。</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h1>Wie man es benutztpreg_matchFunktion vonHTMLExtrahieren Sie spezifische Tag -Inhalte aus dem Quellcode?Was sind die detaillierten Betriebsschritte??</h1>
existierenWebIn der Entwicklung,Wir müssen oftHTMLExtrahieren Sie bestimmte spezifische Tag -Inhalte aus dem Quellcode,比如提取页面Intern标题、Bildadresse oder Absatztext。Obwohl AnalyseHTMLEmpfohlene VerwendungDOMParser und andere Werkzeuge,但existiereneins些简单的场景中,verwenden`preg_match`Funktionen können auch Aufgaben schnell erledigen。本文将详细讲解如何verwenden`preg_match`ausHTMLExtrahieren Sie den Inhalt des angegebenen Tags aus dem Quellcode。
</span><span><span class="hljs-comment">## eins、lernenpreg_matchGrundnutzung von Funktionen</span></span><span>
`preg_match`JaPHPFunktionen, die verwendet werden, um eine regelmäßige Ausdrucksübereinstimmung durchzuführen,Die grundlegende Syntax ist wie folgt:
```php
</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$pattern</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$subject</span></span><span> , </span><span><span class="hljs-keyword">array</span></span><span> &</span><span><span class="hljs-variable">$matches</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span> )
</span></span>
$ Muster : Regelmäßiger Ausdruck
$ Betreff : Die für die Suche nach (d. H. HTML -Quellcode) zu suchende Zeichenfolge)
$ Matches : Wenn das Spiel erfolgreich ist, wird das Matching -Ergebnis -Array zurückgegeben
Der Rückgabewert entspricht 1 erfolgreich und 0 , um nicht übereinstimmen.
Hier ist ein einfaches Beispiel, das zeigt, wie Sie den Inhalt aus dem <title> -Tag extrahieren:
<span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'<html><head><title>这Ja网页标题</title></head><body>Inhalt</body></html>'</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/<title>(.*?)<\/title>/i'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-variable">$matches</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>]; </span><span><span class="hljs-comment">// Ausgabe:这Ja网页标题</span></span><span>
</span></span>
<titels> und </title> : Genau mit den Start- und End -Tags übereinstimmen
(.*?) : Der Inhalt in der Mitte des Nicht-Greedy-Muster-Matching
/i : ignorieren Sie den Fall
preg_match kann nur mit dem ersten passenden Inhalt übereinstimmen. Wenn Sie mehrere identische Tags anpassen möchten, z. B. mehrere <p> -absätze, müssen Sie die Funktion preg_match_all verwenden.
Beispiel:
<span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'<p>第eins段</p><p>Absatz 2</p>'</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/<p>(.*?)<\/p>/i'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">preg_match_all</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-variable">$matches</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>]); </span><span><span class="hljs-comment">// Ausgabe:Array ( [0] => 第eins段 [1] => Absatz 2 )</span></span><span>
</span></span>
HTML -Verschachtelungsproblem : Regelmäßige Ausdrücke können verschachtelte Tags nicht korrekt analysieren, z .
Sicherheit : Wenn Sie die von Benutzern eingegebene HTML -Verarbeitung durchführen, stellen Sie sicher, dass Sie die Sicherheitsverarbeitung durchführen, um XSS -Angriffe zu verhindern.
Leistungsprobleme : Regelmäßig ist die Parsing-Effizienz in großflächigen HTML-Dokumenten gering. Es wird empfohlen, Domdocument in komplexen Strukturen zu verwenden.
Das Extrahieren von HTML -Tag -Inhalten mit PREG_MATCH eignet sich hervorragend zum Umgang mit einfachen HTML -Strukturen. Es kann die Aufgaben schnell und effizient erledigen, wenn sie mit Seiten mit festen Inhalten und gut formatierten Inhalten befasst sind. Wenn jedoch komplexe oder verschachtelte HTML -Strukturen konfrontiert sind, sollten professionellere Parsingmethoden berücksichtigt werden. Das Mastering preg_match kann nicht nur Ihre regelmäßige Ausdrucksfähigkeit verbessern, sondern es auch ermöglicht, Textdaten in bestimmten Szenarien einfach zu verarbeiten.
<span></span>
Verwandte Tags:
HTML