PHP echo $ array [$ i]没有显示任何内容

时间:2011-01-19 15:21:59

标签: php arrays echo

我有以下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];

然后我没有显示任何内容。 为什么在第二种情况下没有显示任何内容?

5 个答案:

答案 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('<','&gt;',$html);


修改
作为对不熟悉实体的人的旁注:

&gt;是代表<的html实体,就像&lt;代表>一样。它们分别表示greater thanless than,并提供另一种打印<的方法,否则将由浏览器解释

答案 2 :(得分:1)

也许现在您的浏览器正在尝试渲染html输出,它只会导致“空白页面”。 您是否尝试过“查看来源”选项?

答案 3 :(得分:1)

您确实获得了输出,但输出是<DOCTYPE声明的开头。你为什么期望看到这个输出明显?在浏览器中“查看源代码”,您就会看到它。

答案 4 :(得分:0)

更改为

for ($i=0;$i<20;$i++) echo htmlspecialchars($array[$i]);