我有几百个网站需要搜索电话号码,我想用PHP搜索我,如果我能弄清楚如何获取网页并将该页面的整个html设置为一个变量,我可以写一个遍历所有网站的脚本并搜索我需要找到的字符串..
我可以用php做什么,所以我可以使用
echo $url
我将看到网站的HTML代码,而不是呈现的页面?
我用curl尝试的所有东西都在我执行时呈现了页面。 谢谢!
答案 0 :(得分:3)
htmlspecialchars($data);
来自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 parser是令人难以置信的提供选择器和许多实用程序,根据您的情况可能会更好。
答案 1 :(得分:1)
您可以使用htmlentities函数htmlentities函数将html标记转换为文本。
echo htmlentities($page_content);
答案 2 :(得分:0)
您可以使用file() function in PHP获取原始HTML。他们甚至在第一个例子中证明了这一点。
答案 3 :(得分:0)
这个link有一个很好的例子:
/* 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
上使用正则表达式来查找您要查找的字符串。