人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの質問です。

配列変数をメモ帳などに保存して、再度読み込みしたいのですが、何か用意方法はありませんか?

●質問者: black_kenchan
●カテゴリ:ウェブ制作
✍キーワード:PHP メモ帳 変数 配列
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● ホーエンハイム
●10ポイント

var_exportでテキストファイルに書き出し、include_onceで読み込めばいいでしょう。

◎質問者からの返答

一応、教えて頂いた流れは既に試しているのですが、読み込みが上手くいかず配列変数にならずに困っています。


2 ● koriki-kozou
●0ポイント

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);
?>

http://jp2.php.net/manual/ja/function.ob-get-contents.php

◎質問者からの返答

なるほどですね!

後で、試してみます。

有難う御座います。


3 ● karronoli
●20ポイント

希望の処理は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は値を内部形式に変換するためそうはできません.

PHP: serialize - Manual

PHP: unserialize - Manual

◎質問者からの返答

有難う御座います。

希望通りに出来ました!


4 ● y-kawaz
●30ポイント

serializeunserializeでいいんじゃないでしょうか?

<?php

//保存
file_put_contents($filename, serialize($arr));

//読み込み
$arr = unserialize(file_get_contents($filename));

?>
◎質問者からの返答

有難う御座います。

希望通りに出来ました!


5 ● Otaxa
●50ポイント ベストアンサー

【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」変数に配列が入ってます
?>
◎質問者からの返答

有難う御座います。

希望通りに出来ました!


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ