以下情况:
我有一个包含一些文字的txt文件。我通过“file_get_contents”用PHP阅读它。 现在我想提交一些带有ajax请求的表单。 要做到这一点,我需要将变量放入JS。
var results = "<?php echo htmlspecialchars($results); ?>";
不起作用。它返回“Unexpected token ILLEGAL”
字符串本身只包含字符,也许只有一些特殊字符。 内容的一个例子是这样的:
Email: MyName@mail.net - Pass: ^s2p3r(s3cr3t& - City: aCity
Email: OtherName@mail.net - Pass: ^s2p3r(s3cr3t& - City: anotherCity
那为什么JS不能读到这个?
由于
编辑:
在html输出中它完全正确显示。 即使是所有特殊的特征,如^,(或&amp;
(我编辑了上面的字符串,确切地说我已经给了我那个错误)
答案 0 :(得分:1)
$results
是否是JSON字符串?
如果是这样,您想使用
解析它 htmlspecialchars(json_encode(json_decode($results,true)))
这样可以先将信息解码成数组,然后编码为Javascript-ready JSON。
我看到的唯一问题是,您似乎没有使用有效的JSON,因为它不在正确的引号中,因此根据您使用的PHP版本,它可能会也可能无法解析数据。理想的情况是您的数据看起来像
['Email' : 'MyName&mail.net', 'Pass' : 's2p3rs3cr3t', 'City' : 'aCity']
这样可以省去尝试使用正则表达式将信息解析为可读格式的麻烦,因为有时间正则表达式可能会错误地替换/解析您可能需要的信息。我仍然相信使用JSON解码和编码数据应该可行。
答案 1 :(得分:0)
也许它是Unicode U + 200B零宽度空格字符?已知该字符会导致意外的令牌ILLEGAL JavaScript语法错误。
如果您打算将该字符串发送到另一个请求,为什么您的json不会对您的内容进行编码?
或试试这个
str_replace("\xe2\x80\x8b", '', $str);
答案 2 :(得分:0)
以下是您要找的东西吗?
<?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..