我目前正在使用PHP动态创建一个javascript,它将是页面上的echoed。
示例代码:
$JS .= '<script>';
if($condition == true) {
$JS .= 'alert("Yo its true omg!");
}
$JS .= "</script>";正如您所看到的,这最终会使所有'引号和双引号中的单引号转义变得混乱.
有更好的方法吗?
发布于 2011-07-05 14:39:46
您需要特雷多语法!
if($condition)
$statement = <<<JS
alert("Wohoo!");
JS;
else $statement = "";
$javascript = <<<JS
<script>
$statement
</script>
JS;若要处理heredoc字符串中的条件语句,只需事先执行条件逻辑,并将空字符串或已填充的字符串插入到heredoc字符串中。您可以像普通字符串一样将变量插入到heredoc字符串中。
如果您认为下面的文件字符串是一个麻烦的定义,我同意您的意见。不幸的是,据我所知,这是唯一的办法,以摆脱更大的引用逃避麻烦(没有双关有意)。
发布于 2011-07-05 14:43:34
最好还是将动态javascript文件创建为具有PHP扩展名的单独文件,然后在输出javascript之前将头内容类型设置为text/javascript
$js = <<<JS
// Your JS here
JS;
header("Content-type: text/javascript");
echo $js;
exit();发布于 2011-07-05 14:43:06
创建一个PHP文件,但是使用一个内容头来使它在浏览器中看起来像一个JS文件。因为文件扩展名为.php,所以Apache (或您使用的其他web服务器)仍然会解析它,但是浏览器会将其视为JS文件,并正确运行内容。我经常在CSS文件中使用这一点,因为它允许我声明变量,并利用循环和其他缺少CSS的更强大的控制概念。
https://stackoverflow.com/questions/6584438
复制相似问题