<span><span><span class="hljs-meta"><?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">?></span></span><span>
<hr>
<h1>それを使用する方法preg_matchfructionHTMLソースコードから特定のタグコンテンツを抽出します?詳細な操作手順は何ですか?</h1>
存在する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> &</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です。
以下は、 <title>タグからコンテンツを抽出する方法を示す簡単な例です。
<span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'<html><head><title>这はい网页标题</title></head><body>コンテンツ</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">// 出力:这はい网页标题</span></span><span>
</span></span>
<title>および</title> :開始タグとエンドタグを正確に一致させる
(。*?) :非グリーディパターンの一致の中央のコンテンツ
/i :ケースを無視します
preg_matchは、最初のマッチングコンテンツのみを一致させることができます。複数の<p>段落などの複数の同一のタグを一致させる場合は、 preg_match_all関数を使用する必要があります。
例:
<span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'<p>第1つ段</p><p>パラグラフ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">// 出力:Array ( [0] => 第1つ段 [1] => パラグラフ2 )</span></span><span>
</span></span>
HTMLネスティングの問題:正規表現は、<div> <span>でコンテンツ内にDivのコンテンツを抽出する傾向があるなど、ネストされたタグを正しく解析できません。
セキュリティ:ユーザーが入力したHTMLを処理するときは、XSS攻撃を防ぐためにセキュリティ処理を実行してください。
パフォーマンスの問題:定期的には、大規模なHTMLドキュメントでは解析効率が低く、複雑な構造でdomdocumentを使用することをお勧めします。
preg_matchでHTMLタグコンテンツを抽出することは、単純なHTML構造の処理に最適です。固定されたコンテンツと適切にフォーマットされたコンテンツを備えたページを扱うときに、タスクを迅速かつ効率的に完了することができます。ただし、複雑またはネストされたHTML構造に直面している場合は、より専門的な解析方法を考慮する必要があります。 preg_matchをマスターすると、正規表現能力を向上させるだけでなく、特定のシナリオでテキストデータを簡単に処理できます。
<span></span>
関連タグ:
HTML