可以';t var_dump、echo或print_r字符串,但可以使用字符串,并且可以输出单个字符


Can't var_dump, echo, or print_r string, but can use string, and can output individual characters

我在一个变量中有一个字符串(缩写为演示)

$xml = '<xml ect ect ect...';

下方的这行代码

var_dump($xml);

返回此输出

string(2715) " "

但是这行代码

var_dump($xml[0]);

返回此输出

string(1) "<"

我正在用这个函数构建xml,一次一行。

protected static function _addLine(&$xml, $string, $padding = 0)
{
    for ($i = 0; $i < (int)$padding; $i++) {
        $xml .= '   ';
    }
    $xml .= $string . chr(10);
}

xml变量可以被使用、更改,我甚至可以创建一个具有预期内容的文件。

$xmlFile = fopen('example.xml, 'w');
fwrite($xmlFile, $xml);
fclose($xmlFile);

但是,我无法将$xml变量输出到页面。我试过echovar_dumpprint_r$debug = $xml; echo $debug;。这些都没有奏效。为什么这个变量没有输出?

从视觉上看,在页面上,您不会看到xml,但如果使用inspect元素,您会看到元素在那里。浏览器将xml字符串解释为html元素。要在浏览器中查看,请转义html字符。

echo htmlspecialchars($xml);