0

次のフォーム アクションの出力を、次のようなテキスト ファイルに保存したいと思います。

var1
var2
var3

フォーム アクションの例:

<form action="myform.php" method="post">

<input type="hidden" name="var1" value="var1">
<input type="hidden" name="var2" value="var2">
<input type="hidden" name="var3" value="var3">

<input type="submit" name="formSubmit" value="Submit">
</form>

例 myform.php

<?php

  $fs = fopen("mydata.txt","w");
  fwrite($fs,$_POST['var1']);
  fwrite($fs, "\n");
  fwrite($fs,$_POST['var2']);
  fwrite($fs, "\n");
  fwrite($fs,$_POST['var3']);
  fwrite($fs, "\n");
  fclose($fs);


?>

ただし、出力は次のとおりです。

var1var2var3

それを修正するにはどうすればよいですか?

4

3 に答える 3

2

Windows を使用している場合、これらの変数は新しい行に表示されません。これは、Windows が\r\n行末記号として使用するためです。

var1\nvar2\nvar3\nWindowsでは次のようにレンダリングされます

var1var2var3

ただし、Linux または Unix (\n行末) では、次のようにレンダリングされます。

var1
var2
var3

したがって、このよう\r\nに代わりに使用する必要があります\n

fwrite($fs, "\r\n");

これにより、どのオペレーティング システムでも新しい行に値が表示されます。

于 2012-12-31T04:22:17.333 に答える
0

事前定義された定数PHP_EOLは、PHP 4.3.10以降のPHP4と、PHP5.0.2以降のPHP5で使用できます。

これにより、任意のオペレーティングシステムの正しい行末が追加されます。

fwrite($fs, PHP_EOL);

1つのオペレーティングシステムでプロジェクトを開発し、別のオペレーティングシステムを実行しているサーバーにプロジェクトを展開する場合は、これを使用します。

于 2012-12-31T05:31:56.383 に答える
0

デバッグ目的でそれを行いますか、それともアプリケーション内の実際のストレージのために行いますか? いずれにせよ、ユーザーがテキスト ファイルとして直接読み取ることが想定されていない場合は、var_export 関数を使用して POST 配列を保存できます。

<?php
file_put_contents("C:/debug.txt", var_export($_POST, true));
?>

var_export を使用すると、ファイルに取得されるのは有効な PHP コードであるため、後で必要に応じてそれを配列として使用し、データをアプリケーションに戻すことができます。

于 2012-12-31T05:02:23.800 に答える