我想在heredoc中转义括号(在php中), 例如,
$str = <<<EOD
hello <hello inside>
EOD;
但是当我回应这个字符串时,我只是得到“你好”作为输出
答案 0 :(得分:6)
这与PHP无关。这是您的浏览器将<hello inside>
解释为标记。
我担心没有自动方法将其转换为heredoc中的HTML元素;您必须对整个字符串执行htmlspecialchars();
,或使用HTML实体:
$str = <<<EOD
hello <hello inside>
EOD;
答案 1 :(得分:2)
我会把这个作为对Pekka答案的评论,但你不能用这种方式格式化评论。您可以像字符串一样处理HEREDOC / NOWDOC块(只要没有跟在该行的结束标识符之后),所以这是完全有效的:
$str = htmlentities(<<< EOD
hello <hello inside>
EOD
);
与以下内容相同:
$str = <<< EOD
hello <hello inside>
EOD;
$str = htmlentities($str);