mysql(またはその他)から次のテキスト文字列を取得した場合、PHPを使用して実際の配列に変換するにはどうすればよいですか?
array("foo" => "bar","honey" => "pops")
配列をシリアル化された状態で保存できることはわかっていますが、それはまさにここで避けようとしていることです。
mysql(またはその他)から次のテキスト文字列を取得した場合、PHPを使用して実際の配列に変換するにはどうすればよいですか?
array("foo" => "bar","honey" => "pops")
配列をシリアル化された状態で保存できることはわかっていますが、それはまさにここで避けようとしていることです。
使用しますeval
が、危険すぎます....そのような使用はお勧めしません
$string = '$array = array("foo" => "bar","honey" => "pops");' ;
eval($string);
var_dump($array);
出力
array(2) {
["foo"]=>
string(3) "bar"
["honey"]=>
string(4) "pops"
}
次のような標準形式を使用します
JSON
http://php.net/manual/en/book.json.php
XML
http://php.net/manual/en/book.simplexml.php
Serialized PHP
http://php.net/manual/en/function.serialize.php
答えは「これをしないでください」です。 PHPコードをデータベースに入れないでください。データベースはデータ用であり、コード用ではありません。
正しい方法は、シリアル化された配列を格納することです(なぜそれを避けたいのかわからない)。
eval
次の関数を使用できます。
http://php.net/manual/en/function.eval.php
次のようなものを試してください。
$my_string = 'array("foo" => "bar","honey" => "pops")';
eval("\$result=$my_string;");