如何从网页上获取HTML文本而不进行渲染?

时间:2012-07-24 19:05:59

标签: php html

使用cURL或者......

$html = file_get_contents('http://stackoverflow.com/questions/ask');

获取网页,但它也将其呈现为普通网页,我只想要文本。

4 个答案:

答案 0 :(得分:2)

假设你只是做echo $html并假设它以某种方式呈现。不是。用纯文本来看它:

header("Content-Type: text/plain");
echo $html;

如果“渲染”你的意思是“ASP.NET将页面渲染成HTML”,不,你就无法获得任意远程页面的来源。这将是一个相当大的安全风险。

答案 1 :(得分:1)

呃......所有file_get_contents都会得到文件的内容。它只是看起来像“渲染”HTML,因为你将它直接转储到输出流中。在输出之前尝试通过htmlspecialchars运行它。

答案 2 :(得分:0)

我同意@Kolink。这样的事情会起作用:

$html = htmlspecialchars(file_get_contents('http://stackoverflow.com/questions/ask'));

没有经过测试,虽然非常知己!

答案 3 :(得分:0)

“只是文字”是什么意思?你想刮掉html文件的文本 content 吗?然后你应该尝试解析文件,即使用像simplehtmldom这样的工具过滤包含有趣内容的标签(查找标签“从html中提取内容”)。或编写自己的解析器,并在必要时使用php自己的strip_tags从内容中删除剩余的标记。