以下情况:
我有一个包含一些文本的txt文件。我用PHP通过“文件获取内容”阅读它。现在我想提交多个表单和一些ajax请求。要做到这一点,我需要将变量放入JS中。
var results = "<?php echo htmlspecialchars($results); ?>";
不起作用。它返回“意外令牌非法”
字符串本身只包含字符,可能还有一些特殊的字符。内容的一个例子是这样的:
Email: MyName@mail.net - Pass: ^s2p3r(s3cr3t& - City: aCity
Email: OtherName@mail.net - Pass: ^s2p3r(s3cr3t& - City: anotherCity
那为什么JS看不懂呢?
谢谢
编辑:
在html输出中,它完全正确显示。即使使用所有特殊字符,如^,(或
(我编辑了上面的字符串,到底会给我那个错误)
$results
是JSON字符串吗?
如果是这样,您希望使用
json_encode(json_decode)
这样,信息就可以首先解码成一个数组,然后编码为Javascript就绪的JSON。
我看到的唯一问题是,您似乎没有使用有效的JSON,因为它没有在正确的引号中,因此根据您使用的PHP版本,它可能无法解析数据。理想的情况是让您的数据看起来像
['Email' : 'MyName&mail.net', 'Pass' : 's2p3rs3cr3t', 'City' : 'aCity']
这将节省您尝试使用正则表达式将信息解析成可读格式的头痛,因为有时间正则表达式可能会错误地替换/解析您可能需要的信息。我仍然相信使用JSON解码和编码数据应该可以工作。
可能是Unicode U 200B零宽度空格字符?已知该字符会导致意外的令牌非法JavaScript语法错误。
如果您的目的是将该字符串发送到另一个请求,为什么不使用json对您的内容进行编码?
或者试试这个
str\u替换(“\xe2\x80\x8b”,”$str)代码>
你在找什么?
<?php
$var='MyName@mail.net - Pass: s2p3rs3cr3t - City: aCity';
?>
<script type="text/javascript">
var mymail = '<?php echo json_encode($var); ?>';
alert(mymail);
</script>
if not, could you please tell the exact output you want..