Heim  >  Artikel  >  Backend-Entwicklung  >  Regulärer PHP-Ausdruck: So passen Sie alle Überschriften in HTML an

Regulärer PHP-Ausdruck: So passen Sie alle Überschriften in HTML an

WBOY
WBOYOriginal
2023-06-22 22:14:521196Durchsuche

Die Verwendung regulärer Ausdrücke zum Abgleichen von HTML-Titeln ist eine häufige Operation in PHP. Der Titel einer Webseite wird normalerweise verwendet, um den allgemeinen Inhalt der Seite anzuzeigen, damit Benutzer sie leichter verstehen und durchsuchen können. In einigen Fällen müssen wir alle Titel zur späteren Verarbeitung aus HTML extrahieren.

In diesem Artikel erfahren Sie, wie Sie mit regulären PHP-Ausdrücken schnell und effektiv alle Titel in HTML extrahieren.

1. Klassifizierung von HTML-Titeln

In HTML-Seiten gibt es viele Arten von Titeln, die mithilfe der folgenden Tags definiert werden können:

  1. h1 ~ h6-Tag: Wird verwendet, um die Ebene des Titels anzugeben, h1 ist die am höchsten, h6 ist am niedrigsten;
  2. title-Tag: wird zum Definieren des Titels der Webseite verwendet und befindet sich im Head-Tag.
  3. meta-Tag: wird zum Definieren der Metadaten der Webseite verwendet, die häufig zur Suchmaschinenoptimierung verwendet werden.

2. Reguläre PHP-Ausdrücke

Reguläre Ausdrücke sind ein leistungsstarkes Such- und Ersetzungstool, mit dem Textzeichenfolgen effektiv verarbeitet werden können. In PHP können wir preg_match(), preg_match_all(), preg_replace() und andere Funktionen verwenden, um den Vergleich regulärer Ausdrücke zu implementieren.

Die folgenden sind einige häufig verwendete reguläre Ausdruckssyntax:

  1. d: Übereinstimmung mit numerischen Zeichen, Unterstrichen;
  2. s: Übereinstimmung mit Leerzeichen;
  3. ^: Übereinstimmung mit dem Anfang einer Zeichenfolge;
  4. $: entspricht dem Ende der Zeichenfolge;
  5. +: entspricht mindestens einem vorherigen Zeichen;
  6. ?: entspricht keinem oder einem vorherigen Zeichen; eine Reihe von Zeichen;
  7. (): Gruppieren Sie einen Ausdruck für nachfolgende Operationen.
  8. 3. Alle Titel in HTML abgleichen
  9. Im Folgenden stellen wir vor, wie Sie reguläre PHP-Ausdrücke verwenden, um verschiedene Arten von Titeln in HTML-Seiten abzugleichen.
h1 ~ h6-Tags

Schauen wir uns zunächst an, wie man den Titel in h1 ~ h6-Tags abgleicht. Angenommen, wir haben den folgenden HTML-Code:

<!DOCTYPE html>
<html>
<head>
    <title>HTML 标题示例</title>
</head>
<body>
    <h1>这是一级标题</h1>
    <h2>这是二级标题</h2>
    <h3>这是三级标题</h3>
    <h4>这是四级标题</h4>
    <h5>这是五级标题</h5>
    <h6>这是六级标题</h6>
</body>
</html>
    Wir können die Funktion preg_match_all() und den regulären Ausdruck /a89f0e6cefb655e6af53ab7f92340e0c(.*?)c7b11c7696da0d23a1b76f35f6d449a9/, um alle Titel zu extrahieren:
  1. $html = file_get_contents('example.html');
    preg_match_all('/<h[1-6]>(.*?)</h[1-6]>/', $html, $matches);
    print_r($matches[0]);
  2. Im obigen Code verwenden wir die Funktion file_get_contents(), um den Inhalt der HTML-Datei zu lesen, und verwenden dann die Funktion preg_match_all() und den regulären Ausdruck /d23154679ab2aa0540ff7988d340eb34(.*?)8d709ee326a72fb29c36fdf04fb62c17/, passend zu den Titeln h1 ~ h6.

/a89f0e6cefb655e6af53ab7f92340e0c(.*?)8d709ee326a72fb29c36fdf04fb62c17/ im regulären Ausdruck bedeutet, dass das Innere von h1 ~ h6-Tags abgeglichen wird Zeichenfolge, wobei (.*?) ein nicht gieriges Muster darstellt, das mit möglichst wenigen Zeichen übereinstimmt.

Das Ausgabeergebnis lautet wie folgt: /a89f0e6cefb655e6af53ab7f92340e0c(.*?)8d709ee326a72fb29c36fdf04fb62c17/,来提取其中所有的标题:

Array
(
    [0] => <h1>这是一级标题</h1>
    [1] => <h2>这是二级标题</h2>
    [2] => <h3>这是三级标题</h3>
    [3] => <h4>这是四级标题</h4>
    [4] => <h5>这是五级标题</h5>
    [5] => <h6>这是六级标题</h6>
)

上述代码中,我们使用 file_get_contents() 函数读取 HTML 文件内容,然后使用 preg_match_all() 函数和正则表达式 /a89f0e6cefb655e6af53ab7f92340e0c(.*?)8d709ee326a72fb29c36fdf04fb62c17/,来匹配其中的 h1 ~ h6 标题。

正则表达式中的 /a89f0e6cefb655e6af53ab7f92340e0c(.*?)8d709ee326a72fb29c36fdf04fb62c17/,表示匹配 h1 ~ h6 标签内部的字符串,其中 (.*?) 表示非贪婪模式,匹配尽量少的字符。

输出结果如下:

<!DOCTYPE html>
<html>
<head>
    <title>HTML 标题示例</title>
</head>
<body>
    <h1>这是一级标题</h1>
    <p>段落内容</p>
    <h2>这是二级标题</h2>
    <p>段落内容</p>
</body>
</html>

可以看到,我们成功匹配了 HTML 页面中所有的 h1 ~ h6 标题。

  1. title 标签

接下来,我们来看如何匹配 title 标签中的网页标题。假设我们有以下的 HTML 代码:

$html = file_get_contents('example.html');
preg_match('/<title>(.*?)</title>/', $html, $matches);
echo $matches[1];

我们可以使用 preg_match() 函数和正则表达式 /b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/,来提取其中的网页标题:

HTML 标题示例

上述代码中,我们使用 file_get_contents() 函数读取 HTML 文件内容,然后使用 preg_match() 函数和正则表达式 /b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/,来匹配其中的 title 标签。

正则表达式中的 /b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/,表示匹配 title 标签内部的字符串,其中 (.*?) 表示非贪婪模式,匹配尽量少的字符。

输出结果如下:

<!DOCTYPE html>
<html>
<head>
    <title>HTML 标题示例</title>
    <meta charset="utf-8">
    <meta name="keywords" content="HTML,标题,元数据">
    <meta name="description" content="HTML 标题示例 - 一个简单的 HTML 页面,包含多种类型的标题和元数据。">
</head>
<body>
    <h1>这是一级标题</h1>
    <p>段落内容</p>
    <h2>这是二级标题</h2>
    <p>段落内容</p>
</body>
</html>

可以看到,我们成功匹配了 HTML 页面的网页标题。

  1. meta 标签

最后,我们来看如何匹配 meta 标签中的元数据。假设我们有以下的 HTML 代码:

$html = file_get_contents('example.html');
preg_match_all('/<metas+([^>]+s)*names*=s*(['"]?)keywords([^>]+s)*>/', $html, $matches);
print_r($matches[0]);

我们可以使用 preg_match_all() 函数和正则表达式 /009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]?)keywords([^>]+s)*>/,来提取其中的关键词元数据:

Array
(
    [0] => <meta name="keywords" content="HTML,标题,元数据">
)

上述代码中,我们使用 file_get_contents() 函数读取 HTML 文件内容,然后使用 preg_match_all() 函数和正则表达式 /009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]?)keywords([^>]+s)*>/,来匹配其中的关键词元数据。

正则表达式中的 /009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]?)keywords([^>]+s)*>/rrreee

Wie Sie sehen können, haben wir alle h1 ~ h6-Titel auf der HTML-Seite erfolgreich abgeglichen.

    Titel-Tag

    Als nächstes schauen wir uns an, wie der Titel der Webseite im Titel-Tag abgeglichen wird. Angenommen, wir haben den folgenden HTML-Code:

    rrreee

    Wir können die Funktion preg_match() und den regulären Ausdruck /b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/ verwenden, um ihn aus dem Web zu extrahieren Seitentitel:

    rrreee🎜Im obigen Code verwenden wir die Funktion file_get_contents(), um den Inhalt der HTML-Datei zu lesen, und verwenden dann die Funktion preg_match() und den regulären Ausdruck /b2386ffb911b14667cb8f0f91ea547a7(.*?) 6e916e0f7d1e588d4f442bf645aedb2f / passend zum Titel-Tag. 🎜🎜/b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/ im regulären Ausdruck bedeutet, dass die Zeichenfolge im Titel-Tag abgeglichen wird, wobei (.*?) zeigt den nicht gierigen Modus an, bei dem so wenig Zeichen wie möglich gefunden werden. 🎜🎜Das Ausgabeergebnis lautet wie folgt: 🎜rrreee🎜Wie Sie sehen können, haben wir den Webseitentitel der HTML-Seite erfolgreich abgeglichen. 🎜<ol start="3">🎜Meta-Tag🎜🎜🎜Schauen wir uns abschließend an, wie die Metadaten im Meta-Tag abgeglichen werden. Angenommen, wir haben den folgenden HTML-Code: 🎜rrreee🎜Wir können die Funktion preg_match_all() und den regulären Ausdruck <code>/009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"] verwenden. ? )keywords ([^>]+s)*>/ zum Extrahieren der Schlüsselwortmetadaten: 🎜rrreee🎜Im obigen Code verwenden wir die Funktion file_get_contents(), um den Inhalt der HTML-Datei zu lesen, und dann Verwenden Sie die Funktion preg_match_all() und den regulären Ausdruck /009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]?)keywords ([^>]+s)* >/, um mit den Schlüsselwort-Metadaten übereinzustimmen. 🎜🎜/009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]?)keywords ([^>]+s)*> in regulären Ausdrücken / Code> bedeutet, dass die Zeichenfolge im Meta-Tag abgeglichen wird, deren Namensattribut Schlüsselwörter ist. Das Ausgabeergebnis lautet wie folgt: 🎜rrreee🎜Sie können sehen, dass wir die Schlüsselwort-Metadaten erfolgreich auf der HTML-Seite abgeglichen haben In diesem Artikel wird erläutert, wie Sie reguläre PHP-Ausdrücke verwenden, um verschiedene Arten von Titeln in HTML-Seiten abzugleichen. Durch die Verwendung von preg_match(), preg_match_all(), preg_replace() und anderen Funktionen in Kombination mit der Syntax und den Regeln regulärer Ausdrücke erhalten wir relevante Informationen in HTML Der Code kann für die anschließende Verarbeitung und Analyse einfach extrahiert werden 🎜

Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck: So passen Sie alle Überschriften in HTML an. 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