配列変数をメモ帳などに保存して、再度読み込みしたいのですが、何か用意方法はありませんか?
【serialize関数を使う】
配列をserialize関数でシリアライズし、そのテキストをメモ帳に保存します。
<?php //記録したい配列 $array=array( 0=>'a' , 'b'=>'c', 'd'=>2 ); //配列の内容を表示 echo serialize($array); ?>
復元はunserialize関数でできます。
<?php //メモ帳に記録したテキスト $string='メモ帳の内容'; //配列の復元 $array=unserialize($string); ?>
【var_export関数を使う】
var_export関数の内容をメモ帳に保存します。
<?php //記録したい配列 $array=array( 0=>'a' , 'b'=>'c', 'd'=>2 ); //配列の内容を表示 var_export($array); ?>
復元はeval関数でできます。
<?php //メモ帳に記録したテキスト $string='メモ帳の内容'; //配列を復元 eval('$array='.$string.';');//これ以降「$array」変数に配列が入ってます ?>
一応、教えて頂いた流れは既に試しているのですが、読み込みが上手くいかず配列変数にならずに困っています。
2つの配列をb.phpに保存して、即座にインクルードして変数を出力するというサンプルを作ってみた
出力をバッファリングしてからファイルに保存するという手を使っている
<?php $a1 = array('a' => 1, 'b' => 2); $a2 = array('b' => 1, 'c' => array('d' => 2, 'e' => 3)); ob_start(); echo "<?php\n"; echo '$b1='; var_export($a1); echo ";\n"; echo '$b2='; var_export($a2); echo ";\n"; echo '?>'; $b = ob_get_contents(); ob_end_clean(); $f = fopen('b.php', 'w'); fputs($f, $b); fclose($f); include_once('b.php'); print_r($b1); print_r($b2); ?>
なるほどですね!
後で、試してみます。
有難う御座います。
希望の処理はserialize/unserializeを使った処理です.
<?php $a1 = array('a' => 1, 'b' => 2); $a2 = array('b' => 1, 'c' => array('d' => 2, 'e' => 3)); // serializeにテキスト化したいデータを渡す. // 複数の変数を一気に渡そうとarrayでまとめた.渡し方とファイル名はご自由に file_put_contents('serialized.txt', serialize(array($a1, $a2))); var_dump(unserialize(file_get_contents('serialized.txt')));
var_dumpの出力はこうなりました.
array(2) { [0]=> array(2) { ["a"]=> int(1) ["b"]=> int(2) } [1]=> array(2) { ["b"]=> int(1) ["c"]=> array(2) { ["d"]=> int(2) ["e"]=> int(3) } } }
var_exportだと保存したい値の書かれたファイルをphpのコードとして直感的に読めますが,serializeは値を内部形式に変換するためそうはできません.
有難う御座います。
希望通りに出来ました!
serializeとunserializeでいいんじゃないでしょうか?
<?php //保存 file_put_contents($filename, serialize($arr)); //読み込み $arr = unserialize(file_get_contents($filename)); ?>
有難う御座います。
希望通りに出来ました!
【serialize関数を使う】
配列をserialize関数でシリアライズし、そのテキストをメモ帳に保存します。
<?php //記録したい配列 $array=array( 0=>'a' , 'b'=>'c', 'd'=>2 ); //配列の内容を表示 echo serialize($array); ?>
復元はunserialize関数でできます。
<?php //メモ帳に記録したテキスト $string='メモ帳の内容'; //配列の復元 $array=unserialize($string); ?>
【var_export関数を使う】
var_export関数の内容をメモ帳に保存します。
<?php //記録したい配列 $array=array( 0=>'a' , 'b'=>'c', 'd'=>2 ); //配列の内容を表示 var_export($array); ?>
復元はeval関数でできます。
<?php //メモ帳に記録したテキスト $string='メモ帳の内容'; //配列を復元 eval('$array='.$string.';');//これ以降「$array」変数に配列が入ってます ?>
有難う御座います。
希望通りに出来ました!
My Soul, Your Beats!/Brave Song 【初回生産限定盤】
有難う御座います。
希望通りに出来ました!