php模板变量传递给js问题

问题

现在有一个变量$md_content要传递给js使用,所以使用

var content = "<?=$article['md_content']?>";

但是由于$md_content(其实这个变量存了markdown文本)也有可能包含双引号,单引号,反引号等问题,所以上述代码有时候会出问题。

解决方案

我现在是把值渲染到一个textarea标签里,然后js取value,也就是

<textarea id="content"  style="display: none"><?=$article['md_content']?></textarea>

var content = $('#content').val();

私以为这不是一个好的解决方案,大家有别的意见吗??

阅读 2.9k
3 个回答

var content = <?=json_encode($article['md_content'])?>;
这可以说是json_encode的一个妙用了,但是要求字符集用utf-8

function strFilter($str){
    return preg_replace(["/'/", '/"/', '/`/'], ["\\'",'\\"','\\`'], $str);
}

可以写一个全局函数

模板上直接就可以用啊。只需要两行代码就解决了。根本没那么复杂。
给你说了没那么复杂,只需要两行代码就解决了。这是截图。鉴于你的差评,我就把代码部分隐去了。只告诉你,这是绝对可以用的。看图:
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题