拉网站的html代码作为php变量


Pull html code of website as php variable

我有几百个网站,我需要搜索一个电话号码,我想用PHP来搜索我,如果我能弄清楚如何抓取一个网页,并设置该页面的整个html作为一个变量,我可以写一个脚本,通过所有的网站,并做一个搜索字符串,我需要找到..

我要怎么做才能使用

echo $url

和我会看到一个网站的HTML代码,而不是页面呈现?

我用curl尝试的所有内容在执行时都会渲染页面。谢谢你!

htmlspecialchars($data);

From the docs:

$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;

对于在变量(本例中为$new)中搜索,应该使用正则表达式。但是要小心,将html显示为标记而不是呈现它,将在网站上显示代码,但是您做而不是需要这样做才能在字符串中搜索。

curlfile_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来查找您正在查找的字符串。