将参数从服务器端PHP传递到客户端JavaScript的最安全的方法是什么

Gor*_*oro 27 javascript php symfony1

在我的应用程序中,我非常依赖JavaScript来增强用户界面,但所有数据都来自数据库并由PHP处理.默认情况下,我使用'echo'语句来"及时"替换所需的值,如下所示:

var myVariable = <?php echo $myVariableInPHP ?>
Run Code Online (Sandbox Code Playgroud)

然而,这并没有让我感到非常优雅,我担心这些代码的稳定性和可维护性.

我在这里有其他选择吗?

对于服务器端,我使用的是Symfony 1.4 PHP框架.

谢谢,

Yan*_*hon 38

我最喜欢的方式是:

<?php

$var = array(
  'prop1' => 'value1',
  'prop2' => 'value2',
  // ...
);

?>
<script type="text/javascript">
   var varNameSpace = <?php echo json_encode($var); ?>;

   alert( varNameSpace.prop1 ); // -> 'value1'
</script>
Run Code Online (Sandbox Code Playgroud)

使用json_encode()确保传递给Javascript的值被转义并格式良好.使用公共变量容器还可以防止过度使用全局空间(窗口).

  • +1提及命名空间! (2认同)