将PHP数组转换为Javascript数组

时间:2014-02-18 07:32:21

标签: javascript php

基本上我使用这些代码进行转换:

echo "<script>";
echo " var img_array=new Array();";
foreach($img_arr as $img_url){
      $url=(string)$img_url;
      echo "img_array.push('".$url."');";
}

echo "console.log(img_array);";
echo "</script>";

但是,出现错误(firefox调试窗口):

Error: unterminated string literal
Source File: http://127.0.0.1/CubeCart/index.php?_a=account
Line: 1, Column: 42
Source Code:
    var img_array=new Array();img_array.push('http://gtms01.alicdn.com/tps/i1/T1mL3LFhhhXXaCwpjX.png 

但是在我检查了html页面的源文件之后,脚本显示如下:

<script> var img_array=new Array();img_array.push('http://gtms01.alicdn.com/tps/i1/T1mL3LFhhhXXaCwpjX.png
      ');img_array.push('http://gtms01.alicdn.com/tps/i1/T1DQtTFsdFXXaCwpjX.png');console.log(img_array);</script>

我没有看到任何错误。

2 个答案:

答案 0 :(得分:6)

$jsArray = json_encode ($phpArray);

答案 1 :(得分:1)

你的php数组中的一个项目中有一个换行符。使用此:

echo "<script>";
echo " var img_array=new Array();";
foreach($img_arr as $img_url){
    $url=(string)$img_url;
    echo "img_array.push('". htmlentities(trim($url))."');";
}

echo "console.log(img_array);";
echo "</script>";