php配列が文字列に変換され、データベースが格納されます.
3154 ワード
phpオブジェクトの文字を変換してデータベースを格納する方法.
よく知られているオブジェクトは、データベースに直接格納できません.では、どのような方法でデータベースに格納できますか?
方法1:
配列値に二重引用符、一重引用符、コロンなどの文字が含まれている場合、逆シーケンス化されると問題が発生する可能性があります.
この問題を克服するためにbase 64_を使用することができます.encodeとbase 64_decode.
しかしbase 64符号化は文字列の長さを増加させる.この問題を克服するためにgzcompressと併用できます.
方法2:json_encodeとjson_decode
JSON形式のシーケンス化と逆シーケンス化を使用するのは良い選択です.
json_の使用encodeとjson_decodeフォーマットの出力はserializeとunserializeフォーマットよりずっと速いです.
JSON形式は読み取り可能です.
jsonフォーマットは多くの言語で解析できます
方法3:var_义齿
var_export関数は変数を文字列として出力します.evalは文字列をPHPコードとして実行し,最初の変数の内容を逆シーケンス化する.
方法4:wddx_serialize_valueとwddx deserialize
wddx_serialize_value関数は配列変数をシーケンス化し、XML文字列として出力できます.
よく知られているオブジェクトは、データベースに直接格納できません.では、どのような方法でデータベースに格納できますか?
方法1:
serialize
とunserialize
をシーケンス化する serialize
unserialize
配列値に二重引用符、一重引用符、コロンなどの文字が含まれている場合、逆シーケンス化されると問題が発生する可能性があります.
この問題を克服するためにbase 64_を使用することができます.encodeとbase 64_decode.
しかしbase 64符号化は文字列の長さを増加させる.この問題を克服するためにgzcompressと併用できます.
//
function my_serialize( $obj )
{
return base64_encode(gzcompress(serialize($obj)));
}
//
function my_unserialize($txt)
{
return unserialize(gzuncompress(base64_decode($txt)));
}
方法2:json_encodeとjson_decode
JSON形式のシーケンス化と逆シーケンス化を使用するのは良い選択です.
json_の使用encodeとjson_decodeフォーマットの出力はserializeとunserializeフォーマットよりずっと速いです.
JSON形式は読み取り可能です.
jsonフォーマットは多くの言語で解析できます
方法3:var_义齿
var_export関数は変数を文字列として出力します.evalは文字列をPHPコードとして実行し,最初の変数の内容を逆シーケンス化する.
$str="array (
0 => 'a',
1 => 'b',
2 => 'c',
)";
$arr=eval("return {$str};");
//
array (
0 => 'a',
1 => 'b',
2 => 'c',
)
$re=var_export($reArr, true);
//
"array (
0 => 'a',
1 => 'b',
2 => 'c',
)";
方法4:wddx_serialize_valueとwddx deserialize
wddx_serialize_value関数は配列変数をシーケンス化し、XML文字列として出力できます.