2

Web サイトにフォームがあり、一度完了すると値が配列に保持されます。配列の内容を txt ファイルに入れたいと思います。送信ごとに新しい行に入れ、値を「-」で区切ります。

info-info-info-info
info-info-info-info

私は使用してみました:

foreach ($clean as $info) {
    $file = fopen("userinfo.txt", "w");
    fwrite($file, $info);
    fclose($file);
}

これにより、配列の最後の部分のみがテキスト ファイルに格納され、送信ごとにファイルが上書きされます。

使用:

$results = var_export($clean, true); 
file_put_contents('userinfo.txt', $results);

すべての情報をファイルに正しく書き込みますが、var ダンプとして保存し、送信ごとに上書きします。必要なものを達成するためにフォーマットする方法がわかりません。どんな助けでも大歓迎です。

4

3 に答える 3

2

基本的に、CSV(カンマ区切り値)ファイルを作成しています。PHPには、組み込みのジョブを実行するための適切な関数がありますfputcsv(追加のボーナスとして、セパレーター自体を含む値のエスケープも適切に処理します)。

if($h = fopen('./path/to/file', 'a')) {
  fputcsv($h, $clean, '-');
  fclose($h);
}

fgetcsv後でデータを取得するために使用します。

于 2012-12-02T12:50:59.720 に答える
2
$info = implode("\n",$clean);
file_put_contents("userinfo.txt", $info);

PS: ループ内では fopen を使用しないでください。fclose はループの後になります。

編集:そうあるべきだと少し誤解しました

$info = implode("-",$clean);
file_put_contents("userinfo.txt", "\n".$info,FILE_APPEND);
于 2012-12-02T12:40:07.753 に答える
1

変更 (書き込み専用モードから追加モードへ)

$file = fopen("userinfo.txt", "w");

$file = fopen("userinfo.txt", "a");
于 2012-12-02T12:33:30.367 に答える