ホームページ > バックエンド開発 > PHPチュートリアル > PHP 正規表現: HTML 内のすべてのリンクを照合する方法

PHP 正規表現: HTML 内のすべてのリンクを照合する方法

王林
リリース: 2023-06-22 14:08:01
オリジナル
1404 人が閲覧しました

Web 開発では、HTML ページ内のリンクを処理する必要があることがよくあります。 PHP 正規表現を使用して HTML ページ内のすべてのリンクを照合するにはどうすればよいですか?ここで私たちはそれを知りに来ました。

HTML ページ内のリンクは通常、 タグを通じて実装されます。このタグに基づいてリンクを照合できます。まず、PHP の file_get_contents() 関数を使用して HTML ページのソース コードを取得する必要があります。例:

$html = file_get_contents('http://www.example.com');
ログイン後にコピー

次に、正規表現を使用してすべてのリンクを照合します。以下は、リンクと一致する単純な正規表現です。

$pattern = '/<a href="https://www.php.cn/link/d28a3097fa7cf63ad01c4f328314e2f2">https://www.php.cn/link/d28a3097fa7cf63ad01c4f328314e2f2</a>/';
ログイン後にコピー

この正規表現では、 は、 で始まり、href 属性で始まるリンク タグと一致します。 href="https://www.php.cn/link/2b9bd744f7c0d06123d9d9557310fa80" はリンク アドレスと一致します。括弧は、これがキャプチャ グループであることを示します。つまり、後で $matches 変数を使用して一致結果にアクセスできることを意味します。 >(.?) はリンク テキストに一致し、キャプチャ グループでもあります。

次に、preg_match_all() 関数を使用して、正規表現を HTML ページのソース コードに適用して、すべてのリンクと一致させることができます。

preg_match_all($pattern, $html, $matches);
ログイン後にコピー

関数は配列 $matches を返します。$ は一致します。 [0] には一致するすべてのリンクの完全な文字列が含まれます。$matches[1] はリンク アドレスであるキャプチャ グループ 1 に対応し、$matches[2] はリンク テキストであるキャプチャ グループ 2 に対応します。

最後に、リンク アドレス配列である $matches[1] 配列をループして、すべてのリンクのアドレスを取得できます:

foreach ($matches[1] as $link) {
    echo $link . "
";
}
ログイン後にコピー

完全なコードは次のとおりです:

$html = file_get_contents('http://www.example.com');
$pattern = '/<a href="https://www.php.cn/link/d28a3097fa7cf63ad01c4f328314e2f2">https://www.php.cn/link/d28a3097fa7cf63ad01c4f328314e2f2</a>/';
preg_match_all($pattern, $html, $matches);

foreach ($matches[1] as $link) {
    echo $link . "
";
}
ログイン後にコピー

注、この正規表現は基本的なリンク形式のみに一致します。例:

<a href="http://www.example.com">Example</a>
ログイン後にコピー

リンクに他の属性が含まれている場合、またはラベル形式が基本要件を満たしていない場合は、一致できません。実際のアプリケーションでは、必要に応じて正規表現を変更して、さまざまなリンク形式に適応できます。

要約すると、PHP 正規表現を使用して HTML ページ内のリンクを照合するには、file_get_contents() 関数を使用してページのソース コードを取得し、preg_match_all() 関数と適切な正規表現を使用して、マッチング、そして最後にループ マッチング結果にアクセスするだけです。

以上がPHP 正規表現: HTML 内のすべてのリンクを照合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート