使用htmlentities打印页面内容不适用于google.com

时间:2017-01-20 19:51:31

标签: php curl

我将此代码用于网页的打印内容(源代码):

<?php
$url='http://cloob.com';
$ch=curl_init();
$timeout=5;

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
// Get URL content
$lines_string=curl_exec($ch);
// close handle to release resources
curl_close($ch);
var_dump( htmlspecialchars($lines_string));
//echo htmlentities($lines_string);
//var_dump( $lines_string);
?>

这是有效的,但当我将网址更改为https://google.com时 没有用,为什么?

当我在两种情况下直接使用(当我不使用htmlentities()时)时它起作用了...... (我使用http://phpfiddle.org/

1 个答案:

答案 0 :(得分:0)

首先要做的是阅读docs

  

如果输入字符串在给定编码中包含无效的代码单元序列,则将返回空字符串,除非设置了ENT_IGNORE或ENT_SUBSTITUTE标志。

因此,我们可能在PHP解析HTML时遇到问题,或者编码是对的,或者HTML不对。

当您使用适当的Google网站编码时,您会得到您想要的结果:

var_dump( htmlspecialchars($lines_string, ENT_COMPAT, 'ISO-8859-1'));