我曾尝试在 javascript 中组合 php 变量,我在许多论坛中读到将两者结合起来很复杂,但这是可能的(根据答案)。我的问题在于以下几点:
在我的 php 代码中,我有一个名为 $images 的字符串类型的变量,我希望能够在 javascript 中使用它,例如:
<?php
$imagenes = "imagen1.pngimagen2.pngimagen3.png";
?>
<script type="text/javascript">
var img = <?php echo $imagenes;?>
</script>
我不知道我输入的代码之类的东西是否可以完成,有什么建议吗?
问候和感谢。
有效。
PHP
从a传递变量的值javascript
是微不足道的(注意值,而不是引用;-)。正如你也被告知的那样。您必须记住,如果它是字符串类型,则必须按以下方式进行:如果您偶然想传递 type
array
... 的值,我猜是因为$imagenes
... 的值对我来说没有多大意义,您应该按以下方式进行:如果您想将
array
from传递PHP
给array
fromjavascript
:有很多方法可以完成这项工作,但在所有情况下,您都必须特别小心转义引号。否则,应用程序中可能会出现不良影响。
我们可以
addslashes()
用来完成这项工作:这种方法不会完全安全,因为字符集的差异(不要使用
utf-8
)可能允许关闭标签</script>
,从而导致安全问题(XSS)。为了提高安全性并支持任意数据(类、数组等),最好使用
json_encode()
:如果
$prueba
它是一个字符串,它将json_encode
引用其内容并转义其中的任何引号。如果它是一个数组,它将使用[]
,或{}
用于类/对象等。TL;DR(太长了,你不需要看)
如果您在字符编码中可能存在问题或差异(服务器标头返回的编码与 HTML 中指示的编码不匹配,或者您根本不使用),我建议您通过以下方式添加
utf-8
a 参数:JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS
json_encode
如果所有内容都正确编码,则该功能的安全性
json_encode()
绰绰有余utf-8
。RFC 表明默认情况下使用UTF-8
它,尽管它UTF-16
也可以使用,因此如果混合了不同的字符编码,则某个字符集的引号可能会被错误地转义。当然,您可以毫无问题地发送
PHP
信息Javascript
。其实你这样做的方式是正确的,因为它PHP
是一种服务器端语言和Javascript
一种客户端语言,你不会有任何问题,因为所有的代码PHP
都是在Javascript
.事实上,与它结合是很常见的
PHP
,Javascript/jQuery
并且不被视为一种不好的做法。很容易实现
如您所见,没有任何复杂性,这与在 html 中使用它们相同
echo