我将此代码用于网页的打印内容(源代码):
<?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/)
答案 0 :(得分:0)
首先要做的是阅读docs:
如果输入字符串在给定编码中包含无效的代码单元序列,则将返回空字符串,除非设置了ENT_IGNORE或ENT_SUBSTITUTE标志。
因此,我们可能在PHP解析HTML时遇到问题,或者编码是对的,或者HTML不对。
当您使用适当的Google网站编码时,您会得到您想要的结果:
var_dump( htmlspecialchars($lines_string, ENT_COMPAT, 'ISO-8859-1'));