我必须做一个简单而安全的自动处理从 PHP 到 JavaScript 的变量传递的函数。目前将变量的值存储在一个类变量数组中,然后这个想法是在 Javascript 中提取,但是很多人质疑我(技术上)最好的方法是什么。
我也遇到了几个问题,特别是当复杂移动到带有重音符号、特殊符号或符号作为引号或单引号的 Javascript 数组或字符串时,包括函数 json_decode 在使用带有换行符和回车的链时出现的问题。(您得到无效的 JSON,我不得不在 PHP 中执行清理功能以避免使用这些字符传递变量,但有时我需要这样做)
我在网上搜索了很多,我找到了很多答案,但没有一个可以说服以上问题。
一个例子:
PHP方法(太简单了):
var JsVars;
public function saveJsVar($key, $value) {
$this->JsVars[$key] = $value; //Possible need to clean certain characters like /n /r
}
“javascript部分”
<script>
var SistemVars = SistemVars || {};
<?php foreach ($JSVARS as $k => $var) { ?>
SistemVars.<?=$k?> = '' || '<?php echo $var ?>'; // Dont work with arrays only plain
<?php } ?>
</script>
另外一个选项:
<script>
var SistemVars = SistemVars || {};
SistemVars = <?=json_encode($JSVARS)?> // Object, with plain and array BUT problems with certain characters.
</script>
它的想法是使用 PHP (saveJsVar) 来保存普通变量和数组,并在 JavaScript 中设置 SistemVars 对象中的 var 以像 alert(SistemVars.ParamOne) 一样使用它;
根据您的经验,您认为最好的方法是什么?