2011-09-28 94 views
2

目前我正在尝试返回一个公开可用的XML资源,但当我使用var_dump($resource)时,它返回string(4390) " "字符串不是空的,但在使用var_dump时不显示

我正在使用CURL检索资源,并成功返回其他资源。这里显然有些东西(你可以看到有4390个字符!),但它没有成功返回。

我曾尝试将它包装在utf8_encode中,虽然这没有什么区别。

我也尝试使用print_r<pre>标记返回它,虽然这也没有返回任何东西。

这里的任何帮助将是伟大的!

+1

只是因为你无法看到的字符,这并不意味着它们不存在。例如,如果您在浏览器中查看此内容,并且这些内容为4390个空格,则只能看到一个。 – hakre

+0

如果直接进入它不是空白的,它会存储相当多的XML数据。我刚刚将XML复制到char计数器中,并返回4384个字符。 – Ollie

回答

7

从字符串显示非显示的字符,不要用var_dump,但打印出hex-dump of the string,例如

echo bin2hex($resource); 

使用bin2hexDocs,但上面的链接有更多的选择来提供。以最适合您的调试需求为目标。

编辑:如果你实际上是输出HTML或XML元素,使用htmlspecialcharsDocs

echo htmlspecialchars($result); 
+0

这将返回随机加载的字符,即3c3f786d6c2076657273696f6e3d22312e30223f3e0d0a0d0a0d .... – Ollie

+0

这是每个字符的一个[十六进制值](http://en.wikipedia.org/wiki/Hexadecimal)('00'到'FF') 。如果阅读困难,您可以使用更好的十六进制转储函数,该函数将同时显示:十六进制和可打印字符。看到链接的问题,它有多个答案和更多的选择。 – hakre

+0

谢谢,尽管我们需要做的只是在脚本中使用这些XML数据。它显然存在并正在返回,但我无法使用它。 – Ollie

0

什么类型的文本是XML?如果只有html标签试图查看互联网页面的源代码。也许他们不会显示,因为你的浏览器解释的HTML和不显示标签

+0

它看起来像这样: '<?XML版本= “1.0”> <用户用户id = “AAAAA”/><用户用户id = “BBBBB”/> ...' – Ollie

+1

你要找的' htmlspecialchars',看我[更新的答案](http:// stackoverflow。COM /问题/ 7582302 /串是 - 不空但并非出现 - 时 - 使用-VAR转储/ 7582389#7582389)。 – hakre

+0

@hakre辉煌,工作。谢谢! – Ollie

0

或者你可以使用Kint而不是var_dump来显示调试输出。它将以最可读的方式显示关于转储变量的大部分信息。不用说,它也毫不费力地显示HTML。

截图:

Kint screenshot

相关问题