我试图使用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个。我的代码有什么问题,应该写出正确的方法是什么?
由于
答案 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问题)。