【问题标题】:Notice (8): unserialize() [function.unserialize]: Error at offset 0 of 743 bytes in Cakephp for JSON Array serialize注意 (8): unserialize() [function.unserialize]: JSON Array 序列化的 Cakephp 中 743 个字节的偏移量 0 处出错
【发布时间】:2014-03-29 04:46:27
【问题描述】:

我收到错误:通知 (8): unserialize() [function.unserialize]: 当我尝试在页面中显示 JSON 编码的数组时,偏移量 0 的 743 字节处出错。

我在 foreach 循环中迭代所有用户,以获取数组格式的用户详细信息。数组格式如下:

$userDetails =
    Array
    (
        [id] => 12121212
        [enc_userid] => QWQWQWQWdssd
        [img_path] => http://192.168.1.XX/pjt/images/getuserphoto/SDSDSDSDSD/1/big/
        [msg_icon] => http://192.168.1.XX/pjt/img/sd/4a-icons/msg.png
        [rdd_icon] => http://192.168.1.XX/pjt/img/sd/4a-icons/invite.png
        [profile_path] => http://192.168.1.XX/pjt/user/sd/HJHJHJH
        [name] => XXX XXXXXXXXX
        [type] => IND
        [photo] => XXXXX.jpg
        [designation] => XXXX XXXXXXXXXXXXXXXXX
        [company] => XXXXXXXXXXXXXX Pvt Ltd
        [insid] => 
        [status] => 1
        [city] => XDXX, XXX,XXX
        [xxxx_id] => XXXX
    )

然后这个数组被序列化并显示如下:

echo serialize($userDetails);

foreach 循环如下所示:

$ui_array = array();
    foreach ($search_data as $key => $val) {
        $ui_array[] = unserialize($this->function_to_fetch_user_details($user_id));
    }
echo json_encode($ui_array);exit;

但是对于 JSON 数组,我在开始时得到一个错误,例如:

[false,{"id":"11168","enc_userid":"dsdsdsd","img_path":"http:\/\/192.168.1.dd\/sdsdsd\/images\/getuserphoto\/sdsdsd\/1\/big\/","msg_icon":"http:\/\/192.168.1.sd\/sdsd\/img\/sdheme\/icons\/msg.png" ...................

有错误通知 (8): unserialize() [function.unserialize]: Error at offset 0 of 743 bytes.

我不明白为什么现在会发生此错误,因为它以前运行良好。 任何帮助都会非常有帮助,谢谢!

【问题讨论】:

  • 问题是序列化和反序列化之间发生了什么。
  • 问题很清楚,我已经给出了序列化前的确切数组格式和反序列化后的 json 响应:):):)
  • @GeorgeJoffinJoy:你得到 false 因为你第一次调用 unserialize($this->function_to_fetch_user_details($user_id)) 返回 false。我想知道,您是否使用相同的$user_id 调用该函数?
  • @xiidea 不是所有的用户 id 都是唯一的 id....想知道缺少什么???
  • @GeorgeJoffinJoy:在整个循环中没有任何改变的迹象!

标签: php cakephp json


【解决方案1】:

您收到错误的可能原因可能与您收到错误的原因相同:

让我们调试一下:

将您的代码修改为:

$ui_array = array();
    foreach ($search_data as $key => $val) {
        serializedData = $this->function_to_fetch_user_details($user_id);
         $array = unserialize(serializedData);
         if($array == false) {
           die("error Found with : " . serializedData;
         }
         $ui_array[] = unserialize($this->function_to_fetch_user_details($user_id));
    }
echo json_encode($ui_array);exit;

【讨论】:

    猜你喜欢
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    相关资源
    最近更新 更多