我有几百个网站,我需要搜索一个电话号码,我想用PHP来搜索我,如果我能弄清楚如何抓取一个网页,并设置该页面的整个html作为一个变量,我可以写一个脚本,通过所有的网站,并做一个搜索字符串,我需要找到..
我要怎么做才能使用
echo $url
和我会看到一个网站的HTML代码,而不是页面呈现?
我用curl尝试的所有内容在执行时都会渲染页面。谢谢你!
htmlspecialchars($data);
From the docs:
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>
对于在变量(本例中为$new
)中搜索,应该使用正则表达式。但是要小心,将html显示为标记而不是呈现它,将在网站上显示代码,但是您做而不是需要这样做才能在字符串中搜索。
在curl
或file_get_contents
方法之后,字符串(源)完全没问题。
对于解析html,我发现PHP Simple html DOM解析器提供了令人难以置信的选择器和许多实用程序,根据您的情况可能会更好。
可以使用htmlentities函数htmlentities函数将html标签转换为文本。
echo htmlentities($page_content);
可以使用PHP中的file()函数获取原始HTML。他们甚至在第一个例子中演示了这一点。
这个链接有一个很好的例子:
/* gets the data from a URL */
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$returned_content = get_data('http://stackoverflow.com');
然后您可以在$returned_content
上使用regex来查找您正在查找的字符串。