如何从JavaScript中访问PHP变量?

0 javascript php interop

我想使用JavaScript(客户端脚本)访问PHP(服务器端文件变量)而不使用MySQL.我有$ name = Tom; 如何在JavaScript中访问此$ name变量?请显示代码示例,因为我是编程新手.谢谢.

cHa*_*Hao 6

你可以做点什么

<script>
    php_variable = <?= json_encode($php_variable) ?>;
</script>
Run Code Online (Sandbox Code Playgroud)

甚至可以让你做数组和可能的对象.但它需要PHP 5.2或更高版本.如果你没有被困json_encode,你可以在调用时包装引号addslashes,但这不会让你做数组等.

如果你的意图是在某种形式下设置值,你可以这样做

<input type="text" name="stuff" value="<?= htmlentities($stuff) ?>">
Run Code Online (Sandbox Code Playgroud)

当然,如有必要,您可以在脚本中访问该元素的值.

这里有两个要点:

  • 由于PHP正在生成页面,因此它可以随意输出内容 - 甚至可以在<script>元素的中间输出.您可以使用它将变量从服务器传输到客户端,但反之亦然.(转移客户变量......好吧......这实际上需要XHR或表单提交.)

  • 但总是*逃避从PHP到任何地方的东西 - 特别是如果它进入HTML,JS或直接进入SQL.除非您的服务器设置为全部延迟(例如启用魔术引号),否则PHP将获取原始数据,并且它可能具有特殊字符,这将导致其中一个或全部中断.

*好了,不是经常.如果你有一个包含某些HTML或JS的PHP变量,你想输出 HTML/JS,那么就不要逃避它.但是你应该知道"XSS"的含义,并且不要盲目输出用户提供的数据.