javascript - PHP 解析 heredoc 中的 JavaScript 内容

标签 javascript php html variables heredoc

<?php
$javascript = <<<EOT
<script type="text/javascript">
function test () {
    return 'test test test \n test test test';
}
</script>
EOT;

echo $javascript;
?>

上面的\n被PHP解析为换行符,生成如下HTML源码

    return 'test test test 
 test test test';

这会导致 JavaScript 语法错误:未终止的字符串文字。


我有一大段 JavaScript 代码,所以我不想像这样包装它们

$javascript = "<script type=\"text/javascript\">\nfunction test()...\n";

实际上 JavaScript 代码并没有直接回显到页面,它被传递给另一个函数,这就是为什么我需要一个 PHP 变量。


那么我如何定义一个包含大量 JavaScript 代码的 PHP 变量而不会引起问题呢?

有没有if/endif之类的方法?

<?php if (condition): ?>
html code...
<?php endif ?> 

最佳答案

选项 1:使用 NOWDOC , 这对于 HEREDOCs 就像 ' 单引号对于 " 双引号一样。

$javascript = <<<'EOT'
   ...\n...
EOT;

选项 2:转义特殊字符:

$javascript = <<<EOT
    ...\\n...
EOT;

关于javascript - PHP 解析 heredoc 中的 JavaScript 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27644901/

相关文章:

javascript - 如何将 div 实例包装在盒子内

javascript - 在 HTML5 Canvas 中撕裂?

PHP 默认时区

html - 推特 Bootstrap 和 Canvas 定位

html - 绝对定位元素超出其 'min-width' 的收缩窗口保留 'left' 值但破坏 'right' 值

javascript - javascript自定义脚本中的淡入淡出效果属性/函数?

javascript - 类似于 typescript 中的字符串枚举类型

javascript - 更好的性能?在 Javascript/Jquery Mobile 中一次即可生成 200 多个单独的结果页面或 200 多个条件(如果是梯子或 switch 情况?)

php - 使用 ffmpeg 将 mp3 转换为 ogg

php - 如何创建一个 HTML 文本框,它在顶部有一个水平菜单选项卡可供选择?