php关于从数据库一个字段里面提取数据的问题 本帖最后由 pengjixin123 于 2014-07-14 14:42:38 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $row = unserialize($row['data']); 比如把data数据里面的time后面的1405306402单独提出来应该怎么提取? 你 print_r($row); 看看就知道了 數據使用了序列化,執行一次反序列化即可,但你的數據有問題直接使用unserialize會返回false。$content = 'a:9:{s:4:"time";i:1405306402;s:4:"name";s:6:"新晨";s:5:"url";s:1:"-";s:4:"word";s:1:"-";s:5:"rpage";s:29:"http://www.baidu.com/test.html";s:5:"cpage";s:1:"-";s:2:"ip";s:15:"117.151.180.150";s:7:"ip_city";s:31:"中国北京市 北京市移动";s:4:"miao";s:1:"5";}';var_dump(unserialize($content)); // bool(false)因為你的數據中包含了\r 導致計算長度不對因此需要處理一下才可以正常unserializefunction mb_unserialize($serial_str) { $serial_str= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str ); $serial_str= str_replace("\r", "", $serial_str); return unserialize($serial_str);}$content = mb_unserialize($content);//獲取timeecho $content['time']; //1405306402 smarty中foreach排版问题 在线等!!!!!!!!!!!! 关于简化代码的问题...... PHP怎么让图片变成灰白的? preg_replace的一个问题? 求一个自动检查网站断链的软件 使用curl访问https 请问我如何才能把这个alert(t2)打印出来呢? 这个问题怎样解决?急待!! 为什么从MYSQL取出来的值有“"”的后面的字符就取不出来 PHP代码ip2long 循环问题 用递归addslashes函数转义数组 php如何移动已上传的图片
比如把data数据里面的time后面的1405306402单独提出来应该怎么提取?
直接使用unserialize會返回false。$content = 'a:9:{s:4:"time";i:1405306402;s:4:"name";s:6:"新晨";s:5:"url";s:1:"-";s:4:"word";s:1:"-";s:5:"rpage";s:29:"http://www.baidu.com/test.html";s:5:"cpage";s:1:"-";s:2:"ip";s:15:"117.151.180.150";s:7:"ip_city";s:31:"中国北京市 北京市移动";s:4:"miao";s:1:"5";}';var_dump(unserialize($content)); // bool(false)
因為你的數據中包含了\r 導致計算長度不對
因此需要處理一下才可以正常unserialize
function mb_unserialize($serial_str) {
$serial_str= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );
$serial_str= str_replace("\r", "", $serial_str);
return unserialize($serial_str);
}
$content = mb_unserialize($content);//獲取time
echo $content['time']; //1405306402