我有这个字符串内容的数据库:
[$3] [$ 3] [$3.2]
Run Code Online (Sandbox Code Playgroud)
需要回应它原样.
当试图回声
echo "[$3] [$ 3] [$3.2]";
Run Code Online (Sandbox Code Playgroud)
明白啦:
[] [$ 3] [.2]
Run Code Online (Sandbox Code Playgroud)
尝试了urlencode,htmlspecialchars,但没有成功.
我如何回应并得到这个?
[$3] [$ 3] [$3.2]
Run Code Online (Sandbox Code Playgroud)
编辑:
单引号并没有给出想要的结果.
echo '[$3] [$ 3] [$3.2]';
[] [$ 3] [.2]
Run Code Online (Sandbox Code Playgroud)
我的php版本是5.2.14,我正在使用Joomla.
EDIT2:
我想通了,它不使用单引号的原因是因为Joomla + Jumi.如果我使用纯PHP - 它可以正常工作.
如果不希望插值变量值,请使用单引号.
从PHP手册:
注意:与双引号和heredoc语法不同,特殊字符的变量和转义序列在单引号字符串中出现时不会扩展.
echo '[$3] [$ 3] [$3.2]';
Run Code Online (Sandbox Code Playgroud)
引号对于这种特殊情况无关紧要,因为PHP变量不能以数字开头.
例如:
echo '[$3] [$ 3] [$3.2]'; // single-quoted
Run Code Online (Sandbox Code Playgroud)
将具有与以下相同的效果:
echo "[$3] [$ 3] [$3.2]"; // double-quoted
Run Code Online (Sandbox Code Playgroud)
两者都应该输出:
[$3] [$ 3] [$3.2]
Run Code Online (Sandbox Code Playgroud)
但是,对于有效变量,以上规则适用.
例:
$var = 'foo';
$string = 'this is a string with $var';
echo $string;
Run Code Online (Sandbox Code Playgroud)
输出:
this is a string with $var
Run Code Online (Sandbox Code Playgroud)