0

PHP と file_get_contents と正規表現を使用して Web ページからデータを取得しようとしましたが、ページから正しいデータを取得できないようです。

ここに私のコードがあります、

<?php
   $homepage = file_get_contents('http://www.website.com');
   preg_match_all('/<p><b>(.*)<\ /b><br>(.*)<br>(.*)<\ /p>/ms', $homepage, $matches);
   $def = $matches[0];
   echo $def;
   ?>

正規表現に一致する html コードがあるにもかかわらず、私の正規表現は何も取得しません。テストとして、最初の preg_match 関数を次の関数に置き換えてみました。

preg_match_all('/<div>(.*)<\ /div>/ms', $homepage, $matches);

これは、ページ上の多くの div タグのうち 2 つだけをピックアップしました。私のコードのどこが間違っていて、それを書くべき正しい方法は何ですか?

ありがとう

4

1 に答える 1

1

RegEx を使用する代わりに、単純に PHP のDocument Object Modelを使用できます。

$homepage = file_get_contents('http://www.website.com');
$DOM = new DOMDocument;
$DOM->loadHTML($homepage);
$items = $DOM->getElementsByTagName('div');
$def = $items->item(0)->nodeValue;

この質問から参照)。

于 2012-04-08T02:31:42.213 に答える