IP.Nexus は、カスタム フィールドをすべて 1 つの行にまとめてテーブルに配置し、何らかの方法で正しいデータを引き出します。
基本的に、カスタム フィールドの行は次のようになります。
a:2:{i:2;s:4:"Test";i:3;s:10:"Accounting";}
行全体ではなく1つのアイテムだけを出力したいので、どのアイテムをプルするかを選択するにはどうすればよいですか。
テストのために広告だけをエコーアウトしたいのですが、その逆も同様です。
前もって感謝します
関数を使用してシリアル化された配列でserialize()
あるため、 を使用して内容を取得できますunserialize($YourString);
。
s:4:
しかし、逆シリアル化のために文字列が破損していることがわかります.4文字の長さの文字列のs:4:"advertising"
後にはそうではないことが予想されるためです。s:4:
advertising
データベース内のデータはシリアル化された (json) 形式です。 を使用して単純な配列に変換できますunserialize
。たとえば、$mystr
あなたの文字列が書き込みの場合
$mystring=unserialize($mystring)
この文字列の通常の配列を取得できます
foreach($mystring as $str){
$ads[]=$str['advertising'];
}
結果の配列$ads
は、単純な配列形式で好きな広告になります
これはJSonのように見えるため、PHPJSonモジュールを使用してMySQLの各行を解析できます。
<?php
(...)
while (...) {
$obj = json_decode($row);
// do something with $obj
}