0

IP.Nexus は、カスタム フィールドをすべて 1 つの行にまとめてテーブルに配置し、何らかの方法で正しいデータを引き出します。

基本的に、カスタム フィールドの行は次のようになります。

a:2:{i:2;s:4:"Test";i:3;s:10:"Accounting";}

行全体ではなく1つのアイテムだけを出力したいので、どのアイテムをプルするかを選択するにはどうすればよいですか。

テストのために広告だけをエコーアウトしたいのですが、その逆も同様です。

前もって感謝します

4

3 に答える 3

1

関数を使用してシリアル化された配列でserialize()あるため、 を使用して内容を取得できますunserialize($YourString);

s:4:しかし、逆シリアル化のために文字列が破損していることがわかります.4文字の長さの文字列のs:4:"advertising"後にはそうではないことが予想されるためです。s:4:advertising

于 2012-06-13T13:54:19.623 に答える
0

データベース内のデータはシリアル化された (json) 形式です。 を使用して単純な配列に変換できますunserialize。たとえば、$mystrあなたの文字列が書き込みの場合

$mystring=unserialize($mystring)

この文字列の通常の配列を取得できます

foreach($mystring as $str){
$ads[]=$str['advertising'];
}

結果の配列$adsは、単純な配列形式で好きな広告になります

于 2012-06-13T13:49:50.177 に答える
-1

これはJSonのように見えるため、PHPJSonモジュールを使用してMySQLの各行を解析できます。

<?php

(...)
while (...) {
    $obj = json_decode($row);
    // do something with $obj
}
于 2012-06-13T13:47:23.380 に答える