現在の位置: ホーム> 最新記事一覧> preg_match関数を使用してHTMLソースから特定のタグコンテンツを抽出する方法は?詳細な操作手順は何ですか?

preg_match関数を使用してHTMLソースから特定のタグコンテンツを抽出する方法は?詳細な操作手順は何ですか?

gitbox 2025-08-21
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// この記事では、使用方法について説明しますPHP社内preg_match抽出する機能HTML源码社内特定标签コンテンツ。</span></span><span>
</span><span><span class="hljs-comment">// preg_matchこれは、強力な正規表現マッチングツールです,単純なパターンマッチングに適しています。</span></span><span>
</span><span><span class="hljs-comment">// しかし,複雑な場合HTML構造,使用することをお勧めしますDOMDocumentより安定した方法。</span></span><span>
</span><span><span class="hljs-comment">// この記事は学習目的で行われます,展示するpreg_match存在する提取标签社内基本用法。</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

&lt;h1&gt;それを使用する方法preg_matchfructionHTMLソースコードから特定のタグコンテンツを抽出します?詳細な操作手順は何ですか?&lt;/h1&gt;

存在するWeb開発中,しばしばする必要がありますHTMLソースコードから特定の特定のタグコンテンツを抽出します,比如提取页面社内标题、画像アドレスまたは段落テキスト。分析HTML推奨使用DOMパーサーおよびその他のツール,但存在する1つ些简单的场景中,使用`preg_match`関数は、タスクを迅速に完了することもできます。この記事では、それをどのように使用するかを詳細に説明します`preg_match`からHTMLソースコードから指定されたタグのコンテンツを抽出する。

</span><span><span class="hljs-comment">## 1つ、学ぶpreg_match関数の基本的な使用</span></span><span>

`preg_match`はいPHP正規表現マッチングを実行するために使用される関数,基本的な構文は次のとおりです:

```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> &amp;</span><span><span class="hljs-variable">$matches</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span> )
</span></span>
  • $パターン:正規表現

  • $件名:検索する文字列(つまり、HTMLソースコード)

  • $マッチ:試合が成功した場合、マッチング結果アレイが返されます

正常に一致するリターン値は1 、ミスマッチと一致する0です。

2。例:HTMLで<Title>タグコンテンツを抽出します

以下は、 <title>タグからコンテンツを抽出する方法を示す簡単な例です。

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'&lt;html&gt;&lt;head&gt;&lt;title&gt;这はい网页标题&lt;/title&gt;&lt;/head&gt;&lt;body&gt;コンテンツ&lt;/body&gt;&lt;/html&gt;'</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/&lt;title&gt;(.*?)&lt;\/title&gt;/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">// 出力:这はい网页标题</span></span><span>
</span></span>

正規表現の説明:

  • <title>および</title> :開始タグとエンドタグを正確に一致させる

  • (。*?) :非グリーディパターンの一致の中央のコンテンツ

  • /i :ケースを無視します

3.複数のタグを抽出するときはどうすればよいですか?

preg_matchは最初のマッチングコンテンツのみを一致させることができます。複数の<p>段落などの複数の同一のタグを一致させる場合は、 preg_match_all関数を使用する必要があります。

例:

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'&lt;p&gt;第1つ段&lt;/p&gt;&lt;p&gt;パラグラフ2&lt;/p&gt;'</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/&lt;p&gt;(.*?)&lt;\/p&gt;/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">// 出力:Array ( [0] =&gt; 第1つ段 [1] =&gt; パラグラフ2 )</span></span><span>
</span></span>

4。注意すべきこと

  1. HTMLネスティングの問題:正規表現は、<div> <span>でコンテンツ内にDivのコンテンツを抽出する傾向があるなど、ネストされたタグを正しく解析できません。

  2. セキュリティ:ユーザーが入力したHTMLを処理するときは、XSS攻撃を防ぐためにセキュリティ処理を実行してください。

  3. パフォーマンスの問題:定期的には、大規模なHTMLドキュメントでは解析効率が低く、複雑な構造でdomdocumentを使用することをお勧めします。

5。概要

preg_matchでHTMLタグコンテンツを抽出することは、単純なHTML構造の処理に最適です。固定されたコンテンツと適切にフォーマットされたコンテンツを備えたページを扱うときに、タスクを迅速かつ効率的に完了することができます。ただし、複雑またはネストされたHTML構造に直面している場合は、より専門的な解析方法を考慮する必要があります。 preg_matchをマスターすると、正規表現能力を向上させるだけでなく、特定のシナリオでテキストデータを簡単に処理できます。

 <span></span>
  • 関連タグ:

    HTML