ホームページ >バックエンド開発 >PHPチュートリアル >PHP 正規表現を使用して HTML/XML を解析および処理するためのサンプル コード

PHP 正規表現を使用して HTML/XML を解析および処理するためのサンプル コード

WBOY
WBOYオリジナル
2023-09-09 09:55:451165ブラウズ

PHP 正規表現を使用して HTML/XML を解析および処理するためのサンプル コード

PHP の正規表現を使用して HTML/XML を解析および処理するサンプル コード

はじめに:
正規表現は強力なテキスト パターン マッチングです。ツールは便利な解析と処理を提供します。 HTML や XML などの構造化データを処理する際の処理機能。この記事では、PHP の正規表現を使用して HTML/XML を解析および処理する方法を紹介し、関連するコード例を示します。

1. HTML タグの抽出
HTML を処理する場合、多くの場合、テキストからすべての HTML タグを抽出する必要があります。この機能を実現するには、PHP の正規表現関数 preg_match_all を使用できます。以下はサンプル コードです:

<?php

$html = "<div id='container'><h1>标题</h1><p>内容</p></div>";
$pattern = "/<[^>]+>/";
preg_match_all($pattern, $html, $matches);

foreach ($matches[0] as $tag) {
    echo $tag . "
";
}

?>

上記のコードでは、正規表現 /] >/ を使用して山括弧内の内容と一致します。つまり、HTMLラベルです。 preg_match_all 関数を使用すると、一致したすべてのタグが $matches 変数に保存され、スキャンされて出力されます。

2. HTML タグの属性抽出
HTML タグの抽出に加えて、HTML タグ内の属性も抽出する必要がある場合があります。この機能を実現するには、PHP の正規表現関数 preg_match を使用できます。以下はサンプル コードです:

<?php

$html = "<a href='http://www.example.com' target='_blank'>链接</a>";
$pattern = "/<as+.*?>/i";
preg_match($pattern, $html, $matches);

if (isset($matches[0])) {
    $tag = $matches[0];
    $pattern = "/href=['"](.*?)['"]/i";
    preg_match($pattern, $tag, $hrefMatches);

    if (isset($hrefMatches[1])) {
        $href = $hrefMatches[1];
        echo "链接地址:" . $href . "
";
    }
}

?>

上記のコードでは、まず正規表現 /<as .>/i</as> を使用して a タグと一致させ、次にpreg_match 関数で照合する 取得したタグは $matches 変数に格納されます。次に、正規表現 / href=['"](.*?)['"]/i を使用して href 属性と一致させ、preg_match 関数を使用して一致した属性値を $ に保存します。 hrefMatches 変数内。最後に、属性値を取得して出力します。

3. XML ノードの抽出
HTML と同様に、PHP 正規表現を使用して XML 内のノードを抽出することもできます。以下はサンプル コードです:

<?php

$xml = "<root><item id='1'>内容1</item><item id='2'>内容2</item></root>";
$pattern = "/<items+.*?>/i";
preg_match_all($pattern, $xml, $matches, PREG_SET_ORDER);

foreach ($matches as $match) {
    $tag = $match[0];
    $pattern = "/id=['"](.*?)['"]/i";
    preg_match($pattern, $tag, $idMatches);

    if (isset($idMatches[1])) {
        $id = $idMatches[1];
        echo "ID:" . $id . "
";
    }
}

?>

上記のコードでは、まず正規表現 /<items .>/i</items> を使用して item ノードと一致させ、次に次を使用します。一致する preg_match_all 関数 到着したノードは $matches 変数に保存されます。次に、正規表現 / id=['"](.*?)['"]/i を使用して id 属性と一致させ、preg_match 関数を使用して一致した属性値を $ に保存します。 idMatches 変数。最後に、属性値を取得して出力します。

結論:
上記は、PHP の正規表現を使用して HTML/XML を解析および処理するサンプル コードです。正規表現の強力な機能により、HTML/XMLのタグや属性を簡単に抽出・加工することができ、構造化データの柔軟な処理を実現します。この記事が、HTML/XML 処理における正規表現の応用を理解するのに役立つことを願っています。

以上がPHP 正規表現を使用して HTML/XML を解析および処理するためのサンプル コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。