将参数从服务器端PHP传递到客户端JavaScript的最安全的方法是什么 [英] What is the safest way of passing arguments from server-side PHP to client-side JavaScript
问题描述
在我的应用程序中,我非常依赖JavaScript来增强用户界面,但所有数据都来自数据库并由PHP处理。默认情况下,我使用'echo'语句来及时替换所需的值,如下所示:
In my application I rely heavily on JavaScript to enhance the user interface, but all of the data comes from a database and is processed by PHP. By default I use 'echo' statements to substitute the required values "just in time" like so:
var myVariable = <?php echo $myVariableInPHP ?>
然而,这并没有让我感到非常优雅,我担心这种情况的稳定性和可维护性代码。
This, however, does not strike me as very elegant and I am concerned about stability and maintainability of such code.
我在这里有其他选择吗?
Do I have any alternatives here?
对于服务器端,我使用的是Symfony 1.4 PHP框架。
For server-side, I am using the Symfony 1.4 PHP framework.
谢谢,
推荐答案
我最喜欢的方式是:
<?php
$var = array(
'prop1' => 'value1',
'prop2' => 'value2',
// ...
);
?>
<script type="text/javascript">
var varNameSpace = <?php echo json_encode($var); ?>;
alert( varNameSpace.prop1 ); // -> 'value1'
</script>
使用 json_encode()
确保值传递给Javascript的是转义和格式良好的。使用公共变量容器还可以防止过度使用全局空间(窗口)。
Using json_encode()
ensures that the values passed to Javascript are escaped and well formatted. Using a common variable container also prevents from over using the global space (window).
这篇关于将参数从服务器端PHP传递到客户端JavaScript的最安全的方法是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!