0

InstagramとFacebookから2つの画像フィードを取得しています。どちらの場合も、MySQLに結合して保存する以下のような配列になります。

 [1] => Array
    (
        [id] => 10151385447249771
        [small] => http://sphotos-b.ak.fbcdn.net/hphotos-ak-prn1/s320x320/602882_10151385447249771_875867185_n.jpg
        [large] => http://sphotos-b.ak.fbcdn.net/hphotos-ak-prn1/s600x600/602882_10151385447249771_875867185_n.jpg
        [date] => 1359526678
        [date_display] => 5:17 pm, 30 Jan 2013
        [name] => Something cool
        [link] => http://www.facebook.com/photo.php?fbid=10151385447249771&set=a.10151385444664771.496088.112462694770&type=1
        [caption] => Photo by Jimbo James
        [type] => facebook
    )

次に、次のことを行います。

$photos = array_merge($facebook_photos,$instagram_photos);

usort($photos, array($this, "sort_photos"));

$photos = array_reverse($photos);

ここに配列を出力すれば大丈夫です。シリアル化と非シリアル化も可能で、問題ありません

ただし、MySQLに保存してから引き出してシリアル化を解除すると、「offsetでエラーが発生しました」というメッセージが表示されます。

return mb_unserialize($feed['data']);

public function mb_unserialize($serial_str) { 
    $out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str ); 
    $out = unserialize($out); 
    return  json_decode(stripslashes(json_encode($out)), true);
} 

データを格納するためにBLOB列を使用しています。base64のエンコード/デコードとJSONとしての保存を試しました。他のアイデアはありますか?

4

1 に答える 1

0

簡単な解決策:BLOBは十分な大きさではありませんでした。LONGBLOBと出来上がりに変更しました。

于 2013-03-27T08:14:07.330 に答える