-1

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

我可以用 php 做什么,这样我就可以使用

echo $url

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

当我执行时,我用 curl 尝试过的所有东西都会渲染页面。谢谢!

4

4 回答 4

3
htmlspecialchars($data);

文档

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

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

curl在orfile_get_contents方法之后,字符串(源)非常好。

此外,在解析 html 时,我发现PHP Simple HTML DOM 解析器提供了令人难以置信的选择器和许多实用程序,根据您的情况可能会更好。

于 2013-06-11T17:58:17.397 回答
1

您可以使用 htmlentities 函数htmlentities函数将 html 标签转换为文本。

echo htmlentities($page_content);
于 2013-06-11T17:59:08.263 回答
0

您可以使用PHP 中的 file() 函数来获取原始 HTML。他们甚至在第一个例子中证明了这一点。

于 2013-06-11T17:57:49.153 回答
0

这个链接有一个很好的例子:

/* 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');

然后,您可以使用 regex on$returned_content来查找您要查找的字符串。

于 2013-06-11T18:00:23.473 回答