提问者:小点点

将php变量转换为javascript


以下情况:

我有一个包含一些文本的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输出中,它完全正确显示。即使使用所有特殊字符,如^,(或

(我编辑了上面的字符串,到底会给我那个错误)


共3个答案

匿名用户

$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..

相关问题