2016-04-26 4 views
1

私はそのデータを保存する最良の方法ではないが、データベースは私に与えられ、私はもうそれを変更することはできませんが、私は列overigedataからデータを取得する必要がありますbase64はシリアル化されました。これまでのところ私はこれを思いついたが、このようには動作しなかった。ベース64デコードしてデータを取り出す

$result20 = $dbhandle->query("SELECT base64_decode(overigedata) FROM email WHERE 'date' BETWEEN DATE(NOW()) AND DATE(NOW() + INTERVAL 1 DAY) "); 
$row_cnt20 = $result20->num_rows; 

行の1つのデコード出力は次のようになります。

a:3:{s:15:"HTTP_USER_AGENT";s:108:"Mozilla/5.0 (Windows NT 6.1; WOW64) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 
Safari/537.36";s:11:"REMOTE_ADDR";s:11:"80.00.00.00";s:4:"DATE"; 
s:19:"25-04-2016 15:09:35";} 

私はそれを復号化したいと、日付が今日ある行/ 1日を数えるでしょう。

+1

[unserialize](http://php.net/manual/en/function.unserialize.php)機能を使用してください – Thamilan

+0

ありがとうございました – marijn

答えて

0

データはシリアル化フォーマットとして格納されます。

$var ='a:3:{s:15:"HTTP_USER_AGENT";s:108:"Mozilla/5.0 (Windows NT 6.1; WOW64) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 
Safari/537.36";s:11:"REMOTE_ADDR";s:11:"80.00.00.00";s:4:"DATE"; 
s:19:"25-04-2016 15:09:35";}'; 

$data = unserialize($var); 

データを配列()形式で返します。 あなたのデータには問題があるようです。それは適切にシリアル化されませんでした。

関連する問題