HTML テーブルは Web 開発における一般的な要素です。PHP 正規表現を使用すると、テーブル内のデータを簡単に抽出できます。この記事では、HTML テーブル データの照合における PHP 正規表現の実際的な応用例を紹介します。
HTML テーブルは行と列で構成されます。最も外側のラベルは
タグで表され、各列は次のように表されます: <table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>4</td> <td>5</td> <td>6</td> </tr> <tr> <td>7</td> <td>8</td> <td>9</td> </tr> </table> ログイン後にコピー 上記の HTML コードは、3 行 3 列のテーブルを表しており、最初の行には 1、2 の 3 つの列があります。 2 行目には 4、5、6 という 3 つの列があり、3 行目には 7、8、9 という 3 つの列があります。
HTML テーブルからデータを抽出するには、まず PHP の file_get_contents() 関数または Curl ライブラリを使用して Web ページのソース コードを読み取る必要があります。を使用し、正規表現を使用します。式は HTML テーブル内のデータと一致します。次のコードは、Web ページからテーブル データを抽出する基本的な手順を示しています。 $html = file_get_contents('http://example.com/table.html'); // 获取网页源代码 $pattern = '/<table.*?>.*?</table>/s'; // 匹配table标签及内部内容 preg_match($pattern, $html, $matches); // 执行正则表达式匹配 if (!empty($matches[0])) { // 如果匹配结果不为空 // 从匹配结果中提取表格数据 $data_pattern = '/<tr.*?>.*?</tr>/s'; // 匹配行标签及内部内容 preg_match_all($data_pattern, $matches[0], $data_matches); // 执行正则表达式匹配 foreach ($data_matches[0] as $row) { // 遍历匹配结果中的每一行 $cell_pattern = '/<td.*?>.*?</td>/s'; // 匹配列标签及内部内容 preg_match_all($cell_pattern, $row, $cell_matches); // 执行正则表达式匹配 foreach ($cell_matches[0] as $cell) { // 遍历每一列 $text = strip_tags($cell); // 去除HTML标签,只保留文本内容 echo $text . ' '; // 输出每一列的文本内容 } echo " "; // 换行 } } ログイン後にコピー 上記のコードは、HTML テーブルからデータを正常に抽出し、各行のコンテンツを出力できます。実際のアプリケーションでは、テーブル データをデータベースに保存するなど、必要に応じてテーブル データをさらに処理できます。
上記のコードで使用されている正規表現は、HTML テーブル データと正常に一致しますが、効率は低くなります。大規模な Web ページまたは大量のテーブル データを含む Web ページを処理する場合、マッチング効率を向上させるために正規表現の最適化が必要です。 次に、正規表現の最適化に関する一般的なヒントをいくつか示します:
PHP 正規表現は、HTML テーブル データを簡単に抽出でき、Web クローラー、データ マイニング、その他の分野で大きな応用価値があります。実際のアプリケーションでは、効率と保守性を向上させるために正規表現の最適化に注意を払う必要があります。 |