我正在使用它:
$variable = "Name is \"Bob\"";
$message = <<<EOF
<input type="text" value="$variable">
EOF;
结果是:
实际上,这是合成示例,我正在使用db。但我尝试过:这个合成的例子有效(模拟问题,实际上它表明我正在做的事情不起作用)。
答案 0 :(得分:2)
是的,引号将出现在HTML中。
由于引号将结束属性值,因此您将使HTML无效。
您需要使用htmlspecialchars()
使变量HTML安全。
答案 1 :(得分:1)
答案 2 :(得分:1)
heredoc只是多线回波的便捷捷径。它并不关心字符串中的内容,它只是输出。
以下两种结构之间没有区别:
$foo = "A string with an \" embedded quote";
echo <<<EOL
Hello, $foo, how are you
EOL;
echo "Hello, $foo, how are you";
唯一真正的区别是你在字符串的其余部分没有转义引号:
echo <<<EOL
This is a "quoted phrase" within a sentence
EOL;
echo "This is a \"quoted phrase\" within a sentence";