私は多次元配列を持っていますが、現在はページに配列を印刷するだけです。ユーザーが送信したときに、選択したチェックボックスの情報を格納するフラット テキスト ファイルに保存できるようにしたいと考えています。全部で6日あります。
3 に答える
私は単にこれを行うだろう:
<?php
if ($_POST)
{//always check, to avoid noticed
file_put_contents('theFilenameToWriteTo.json', json_encode($_POST));
}
?>
の利点はjson_encode
、多かれ少なかれ標準であることです。私が知っているすべての言語は、この形式を解析できます。node.js を使用している場合、データ、Java を読み取ることができますか? JSON-javaはあなたのためにあります。パイソン?import json
、地獄、C ++ライブラリでさえ簡単に見つけることができます。
そのデータを PHP で再利用するには:
$oldPost = json_decode(file_get_contents('theFileNameToRead.json'));
//$oldPost will be an instance of stdClass (an object)
//to get an assoc-array:
$oldPostArray = json_decode(file_get_contents('sameFile.json'), true);
他にも次のオプションがあります: serialize
and write、unserialize
on read が続きます。
その配列を既存の PHP コードにコピーして貼り付けることができるようにする場合は、var_export
file_put_contents('theArray.txt', var_export($_POST, true));
次にファイルを開くと、手動で記述されたかのように配列が含まれます。
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
Carlos Campderrós が指摘したように、 によって生成された文字列を含めることもできますvar_export
。var_export
ただし、循環参照を処理しないことに注意することが重要ですが、$_POST
配列を使用している
ため、ここでは問題ではありません。要約すると、便利な関数のリスト:
あなたは使用することができます
print_r($multiArray,true)
true は、印刷ではなく出力をキャプチャすることを意味します。
配列 (PHP 5.4)
$multiArray = [
0 => [ 'a' => 'b'],
1 => [ 'c' => 'd',
'e' => [
'f' => 'g',
'h' => 'i'
]
],
];
PHP
$file = 'array.txt';
$fh = fopen($file, 'w') or die("can't open file");
fwrite($fh, print_r($multiArray,true));
fclose($fh);
または、後で配列を使用する場合は、serialize() と unserialize() を使用できます。
fwrite($fh, serialize($multiArray) );