如何使用PHP从网页获取特定数据

时间:2012-04-08 02:20:46

标签: php regex

我试图使用PHP和file_get_contents以及正则表达式从网页获取数据,但我似乎无法从页面获取正确的数据。

这是我的代码,

<?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个。我的代码有什么问题,应该写出正确的方法是什么?

由于

1 个答案:

答案 0 :(得分:1)

您可以简单地使用PHP的Document Object Model

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

(参考形式this问题)。