php / javascript&从包含php& javascript变量的数据库中检索的字符串

时间:2016-07-01 04:36:24

标签: php jquery mysql variables eval

我正在尝试将数据库中的页面的javascript代码保存为字符串,以便从管理区域轻松编辑,而不需要打开文件,编辑它并上传到服务器。问题是,一些jQuery代码片段使用来自$ _GET变量设置的PHP变量来重新加载部分站点。从数据库中检索到的javascript运行良好,但不知道如何将PHP变量替换为实际值。存储在数据库中的代码如下所示,但在生成页面时,我希望它用$settings['countdown']替换2016-07-01 22:00

$("#clock").countdown("'.$settings['countdown'].'", function(event) {
    $(this).html(event.strftime("%-w week%!w:s; %-d days %-H:%M:%S"));
});

我怎么能成功?谢谢。

1 个答案:

答案 0 :(得分:0)

到目前为止,我使用了以下解决方案,似乎一切运作良好:

将提到的jQuery代码段保存到数据库中:

$(\"#clock\").countdown(\"{{settings.countdown}}\", function(event) {
    $(this).html(event.strftime(\"%-w week%!w:s; %-d days %-H:%M:%S\"));
});

然后使用php渲染它:

if($page['js'] != ''){
    preg_match_all('#\{{(.*?)\}}#', $page['js'], $match);
    foreach($match[1] AS $k => $m){
        $m = explode('.', $match[1][$k]);
        if(isset($m[1])){
            $match[1][$k] = ${$m[0]}[$m[1]];
        }else{
            $match[1][$k] = $$m[0];
        }
        $page['js'] = str_replace($match[0][$k],$match[1][$k],$page['js']);
    }
    $jsfiles[] = '
    <script type = "text/javascript">
    '.$page['js'].'
    </script>';
}

任何人都可以提供任何反馈意见吗? 感谢