文件通过json获取内容

时间:2013-03-03 10:46:35

标签: php codeigniter json

我有一个文件文件文件,我通过file_put_contents保存用户ID 我希望在将用户ID发送到查看功能之前显示该用户ID 这是我的代码 我试着自己但没有结果......

    $name   =   $this->session->userdata('name');
      $id   =   $this->session->userdata('id');

   file_put_contents($filename,json_encode(array('id'=>$id,'name'=>$name)));

   $response = array();
   $response = json_decode(file_get_contents($filename));
   if ($response->name==1){
      echo $this->session->userdata('name');
   }
   echo json_encode($response);

这不工作,我想显示bt,如果我删除这条件,然后我得到我的结果在视图文件

       if ($response->name==1){
         echo $this->session->userdata('name');
       }

感谢....

2 个答案:

答案 0 :(得分:0)

我不清楚为什么你有

if ($response->name==1){

但无论如何都要尝试这个

如果你想要预先设置json对象结构,你需要第二个参数为真

 json_decode(file_get_contents($filename) ,true);

你需要一些你可以在botom中找到的json标题

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
$name   =   $this->session->userdata('name');
$id   =   $this->session->userdata('id');
if(!empty($name)){

    if(!is_file($filename)){
        touch($filename);
        chmod($filename,0777);
    }

    file_put_contents($filename,json_encode(array('id'=>$id,'name'=>$name),true));

    $response = array();
    $response = json_decode(file_get_contents($filename) ,true);
    if (empty($response->name)){  
        echo json_encode(array('error'=>'empty response name'),true);
     die();

 }else{



    echo json_encode($response);
  }

      }else{
    json_encode(array('error'=>'no username'),true)
    }

我的管理员内部有我的消息系统,用于codeigniter

http://dl.dropbox.com/u/72626795/messaging.zip

答案 1 :(得分:0)

$response->name它将是一个字符串,而不是一个int。

替换:

if ($response->name==1){
    echo $this->session->userdata('name');
}

使用:

if ($response->name){
    echo $this->session->userdata('name');
}

<强>更新
您在评论中的某处说明了您要检查用户ID,但在代码中您检查了用户名。同样在if条件内,您应该使用$ response中的数据而不是会话中的数据。那说:

if ($response->id == 1){
    echo $response->name;
}

作为旁注,您确定会话中存在idname吗?