我正在尝试在php中打印以下字符串
var_dump('RQC7<lzC;_ytr@ewm6Eo');
但它只打印RQC7
。如果我删除了字符<
,那么我会得到完整的字符串。我不明白为什么会这样。我用谷歌搜索但找不到任何答案。
我不得不使用图像,因为我无法在堆栈溢出中打印总字符串。
实际上这是共享密钥的一部分,客户端代码将使用$obj->getSharedSecret();
进行访问。我只是使用var_dump()
测试函数的输出。如果var_dump无法打印总字符串,那么这不能用于验证输入,对吗?
此致 坦维尔
答案 0 :(得分:2)
您可能正在查看Web浏览器中的输出。
默认情况下,PHP将包含Content-Type: text/html
响应标头,因此浏览器会尝试将结果解释为HTML。
在HTML中<
表示“标记开始”。
如果您想将<
作为数据加入,则需要使用字符引用,例如<
。
使用htmlspecialchars
函数将您的文本字符串转换为HTML字符串。
<?php
echo htmlspecialchars('RQC7<lxC; etc etc');
?>
答案 1 :(得分:1)
因为“&lt;”是标签开始,它实际上是你想要的打印字符串,但你没有在你的HTML中看到它。您需要查看源代码或使用htmlentities或htmlspecialchars函数。或者,如果您更喜欢使用var_dump进行此类打印安装xdebug(将字符串转换为正确的字符串表示形式)
答案 2 :(得分:-2)
你可以用这个
htmlentities('RQC7<lxc;_ytr@ewm6Eo');