如何修复PHP sprintf行为?

时间:2011-05-12 21:37:23

标签: php printf

上下文

  • PHP
  • XAMPP

为什么不打印任何内容?

$a=sprintf('<s');
echo $a;

4 个答案:

答案 0 :(得分:7)

您是否正在输入浏览器? <a可以被解释为标签的开头(恰好是不完整/未闭合),因此被隐藏。如果是这种情况,请检查页面的来源。调试脚本输出时永远不要相信主浏览器窗口,因为它会在设计上隐藏你的东西。

答案 1 :(得分:3)

它在我的Linux机器上运行良好。

$ php <<< '<?php $a=sprintf("<s"); echo $a; ?>'
<s

你可能会因为缓冲而受到伤害。尝试在打印输出中添加换行符,或使用var_dump()

echo "$a\n";
var_dump($a);

答案 2 :(得分:2)

它打印&lt; s

<swesley@ubuntu:~$ cat blah.php


<?php
$a=sprintf('<s');
echo $a;
?>



wesley@ubuntu:~$ php blah.php

<s

wesley@ubuntu:~$ 

我的猜测是你在浏览器中运行它并将其解释为html标记的开头。

答案 3 :(得分:0)

如果您在渲染的HTML上查看源代码,您会看到它实际上存在。
你必须转义html字符“&lt;”否则你的浏览器会尝试渲染它。

$a=sprintf('&lt;s');
echo $a;

Reference