PHP不会回显JSON_ENCODE,除非我回应别的东西

时间:2014-06-22 12:17:53

标签: php json

我在磁盘上找到了一个文件,并将其内容存储到数组中以显示为json。

function getCurrentPic($username, $password){
  $con = connectToPDO();
  $valid = validateUser($username, $password);
  if($valid == 1){
    $sth = $con->prepare('
      SELECT current_pic
      FROM user 
      WHERE 
      username = :username');
    $sth->execute(array(':username' => $username));
    $sth->bindColumn(1, $imagePath, PDO::PARAM_STR);
    $sth->fetch(PDO::FETCH_BOUND);
    echo spitImageJSON($imagePath);
  }
}


function spitImageJSON($imagePath){
  if(strlen($imagePath) > 1){
    $IDPath = $imagePath.'d';
    $id = getContentsAtPath($IDPath);
    $image = getContentsAtPath($imagePath);
    //echo "$imagePath";
    $arrayData = array(array(
      'image' => $image,
      'id' => $id
      ));
    return json_encode($arrayData);
  }
}

该代码不起作用,除非我取消注释echo#34; $ imagePath",此时它打印路径和json ..当我重新评论它时,没有任何回应。我失去了理智。请帮忙。

btw文件只是一个base64编码的字符串.. id只是一个数字字符串

2 个答案:

答案 0 :(得分:1)

放置

header("Content-type: application/json");

在返回json之前,它的运行方式与没有echo $ imagePath

的情况相同

答案 1 :(得分:0)

万一其他人有这个问题,我必须在正确答案的上方加上以下内容:

header("Access-Control-Allow-Origin: *");