假设我们有输入字段或文本区域,用户可以在其中放置任何内容。这意味着用户可以放在那里:
- 正文
- 空格
- 多行
- HTML 标签
- 单引号和双引号
- 斜线
- 等等...
我当前的代码是这样做的:<?php $data = addslashes($content_of_input); ?>
不久之后...
<?php
$php_generate_javascriptArray .='
javascriptArray[0] ="'.$data.'";
';
?>
<script>
javascriptArray = [];
<?php echo $php_generate_javascriptArray; ?>
</script>
不幸的是,添加斜杠是不够的 - 当用户将多行或 HTML 链接放入其中时,Javascript 会中断。有什么方法可以防止这种情况发生并且仍然允许 Javascript 数组包含链接、多行、HTML 标记?我正在寻找一些通用过滤器。
最佳答案
json_encode
将 PHP 数据结构(或字符串或数字)转换为适当的 JavaScript 数据结构,同时使其安全地注入(inject) HTML 文档中的脚本元素(通过转义斜杠)。
<script>
var data = <?php echo json_encode($data); ?> ;
</script>
关于php - 如何为 Javascript array() 使用准备 PHP 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317140/