我有以下PHP(版本5.3.0)代码:
$URL = "http://www.example.com/";
IF ($URL != "")
try {
$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, $URL);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec ($curl);
$array = str_split($html);
for ($i=0;$i<20;$i++) echo $array[$i]," ";
}
catch (Exception $e) {
print $e->getMessage();
}
按预期工作并显示:
&LT; ! D O C T Y P E h t m l P U B L I
虽然我将该行修改为:
for ($i=0;$i<20;$i++) echo $array[$i];
然后我没有显示任何内容。 为什么在第二种情况下没有显示任何内容?
答案 0 :(得分:3)
可能是因为您的浏览器不喜欢这种部分doctype。在做任何事情之前尝试添加header("Content-Type: text/plain")
。
答案 1 :(得分:3)
for ($i=0;$i<20;$i++) echo $array[$i];
将输出HTML标记的VALID开头,由浏览器解释。因此你没有看到它。
您可以使用echo htmlentities($array[$i]);
动态更改实体,或者只更换html上的每个代码:$html = str_replace('<','>',$html);
修改强>:
作为对不熟悉实体的人的旁注:
>
是代表<
的html实体,就像<
代表>
一样。它们分别表示greater than
和less than
,并提供另一种打印<
的方法,否则将由浏览器解释
答案 2 :(得分:1)
也许现在您的浏览器正在尝试渲染html输出,它只会导致“空白页面”。 您是否尝试过“查看来源”选项?
答案 3 :(得分:1)
您确实获得了输出,但输出是<DOCTYPE
声明的开头。你为什么期望看到这个输出明显?在浏览器中“查看源代码”,您就会看到它。
答案 4 :(得分:0)
更改为
for ($i=0;$i<20;$i++) echo htmlspecialchars($array[$i]);