1

コードの使い方がわからない奇妙なシナリオに遭遇しました。wordpress サイト用の JSON API を作成しています。Connections プラグインを使用して、「元の」画像ファイル名を取得しようとしています。私のSQLコマンドの出力は次のとおりです。

{
    ["options"]=>
    string(396) "a:4:{s:5:"entry";a:1:{s:4:"type";s:12:"organization";}s:5:"group";a:1:{s:6:"family";a:0:{}}s:4:"logo";a:2:{s:6:"linked";b:0;s:7:"display";b:0;}s:5:"image";a:3:{s:6:"linked";b:1;s:7:"display";b:1;s:4:"name";a:4:{s:9:"thumbnail";s:25:"invoicelogo_thumbnail.jpg";s:5:"entry";s:21:"invoicelogo_entry.jpg";s:7:"profile";s:23:"invoicelogo_profile.jpg";s:8:"original";s:24:"invoicelogo_original.jpg";}}}"
  }
}

私はそれを取得するために次のコマンドを使用しています:

querystr = "SELECT options FROM {$wpdb->prefix}connections WHERE id= '{$_GET['companyID']}'"; 
    $options = $wpdb->get_results($querystr);

このコードの「元の」部分を引き出す方法はわかりませんが、それほど整理されていないためです。どんな助けでも大歓迎です。

4

1 に答える 1

2

あなたが見ているのはphpserialize呼び出しの結果です

元の名前を取得するには、これを行うだけです。

$decodedOptions = unserialize($options);
$original = $decodedOptions["image"]["name"]["original"];

それが役立つことを願っています

補足として、逆シリアル化されたデータは次のようになります

Array
(
    [entry] => Array
        (
            [type] => organization
        )

    [group] => Array
        (
            [family] => Array
                (
                )

        )

    [logo] => Array
        (
            [linked] => 
            [display] => 
        )

    [image] => Array
        (
            [linked] => 1
            [display] => 1
            [name] => Array
                (
                    [thumbnail] => invoicelogo_thumbnail.jpg
                    [entry] => invoicelogo_entry.jpg
                    [profile] => invoicelogo_profile.jpg
                    [original] => invoicelogo_original.jpg
                )

        )

)
于 2013-05-21T03:53:24.697 に答える