首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PHP动态创建Javascript的更简便方法

使用PHP动态创建Javascript的更简便方法
EN

Stack Overflow用户
提问于 2011-07-05 14:36:48
回答 5查看 16.1K关注 0票数 6

我目前正在使用PHP动态创建一个javascript,它将是页面上的echoed

示例代码:

代码语言:javascript
运行
复制
$JS .= '<script>';

if($condition == true) {
    $JS .= 'alert("Yo its true omg!");
}

$JS .= "</script>";

正如您所看到的,这最终会使所有'引号和双引号中的单引号转义变得混乱.

有更好的方法吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-05 14:39:46

您需要特雷多语法!

代码语言:javascript
运行
复制
if($condition)
    $statement = <<<JS
        alert("Wohoo!");
JS;
else $statement = "";

$javascript = <<<JS
    <script>
        $statement
    </script>
JS;

若要处理heredoc字符串中的条件语句,只需事先执行条件逻辑,并将空字符串或已填充的字符串插入到heredoc字符串中。您可以像普通字符串一样将变量插入到heredoc字符串中。

如果您认为下面的文件字符串是一个麻烦的定义,我同意您的意见。不幸的是,据我所知,这是唯一的办法,以摆脱更大的引用逃避麻烦(没有双关有意)。

票数 11
EN

Stack Overflow用户

发布于 2011-07-05 14:43:34

最好还是将动态javascript文件创建为具有PHP扩展名的单独文件,然后在输出javascript之前将头内容类型设置为text/javascript

代码语言:javascript
运行
复制
$js = <<<JS
// Your JS here
JS;

header("Content-type: text/javascript");
echo $js;
exit();
票数 5
EN

Stack Overflow用户

发布于 2011-07-05 14:43:06

创建一个PHP文件,但是使用一个内容头来使它在浏览器中看起来像一个JS文件。因为文件扩展名为.php,所以Apache (或您使用的其他web服务器)仍然会解析它,但是浏览器会将其视为JS文件,并正确运行内容。我经常在CSS文件中使用这一点,因为它允许我声明变量,并利用循环和其他缺少CSS的更强大的控制概念。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6584438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档