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

时间:2013-06-11 17:55:00

标签: php curl

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

我可以用php做什么,所以我可以使用

echo $url

我将看到网站的HTML代码,而不是呈现的页面?

我用curl尝试的所有东西都在我执行时呈现了页面。 谢谢!

4 个答案:

答案 0 :(得分:3)

htmlspecialchars($data);

来自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 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上使用正则表达式来查找您要查找的字符串。