将php变量转换为javascript

时间:2014-11-04 12:42:35

标签: javascript php

以下情况:

我有一个包含一些文字的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;

(我编辑了上面的字符串,确切地说我已经给了我那个错误)

3 个答案:

答案 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..