我有几百个需要搜索电话号码的网站,我想用PHP来搜索我,如果我只想弄清楚如何抓取网页,设置页面作为变量的完整的HTML,我可以写一个脚本,通过所有的网站去,并确实为我需要查找的字符串搜索..将网站的html代码拉为php变量
我能使用PHP这样做,我可以用
echo $url
我会看到网站的html代码,而不是页面呈现?
我已经试过用卷曲呈现的所有内容,当我执行时。 谢谢!
我有几百个需要搜索电话号码的网站,我想用PHP来搜索我,如果我只想弄清楚如何抓取网页,设置页面作为变量的完整的HTML,我可以写一个脚本,通过所有的网站去,并确实为我需要查找的字符串搜索..将网站的html代码拉为php变量
我能使用PHP这样做,我可以用
echo $url
我会看到网站的html代码,而不是页面呈现?
我已经试过用卷曲呈现的所有内容,当我执行时。 谢谢!
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是令人难以置信的提供选择器和大量的实用程序,根据您的情况可能会更好。
您可以使用file() function in PHP来获取原始HTML。他们甚至在第一个例子中证明了这一点。
您可以使用htmlentities函数htmlentities函数将html标签转换为文本。
echo htmlentities($page_content);
这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
发现你正在寻找的字符串。
php不会呈现任何内容,但如果您回应浏览器,是的,您将在浏览器中看到呈现的版本。 – jeroen
如果您尝试将包含HTML的字符串内容输出到浏览器屏幕,则很可能会将其呈现为HTML。无论如何,如果您只是在页面内搜索某些内容,为什么还要输出所有内容?这似乎更像是DOMDocument/DOMXPath或类似的问题。 –
http://php.net/manual/en/function.file-get-contents.php $ html = file_get_contents($ url); –