-3

私はfwriteとfile_put_contentsの使用にかなり慣れておらず、forループステートメントのすべての行でエラーが発生しています。

Warning: file_put_contents() expects parameter 1 to be string,

また

Warning: fwrite(): 3 is not a valid stream resource in...

これはコードです:

$ databank = "data.txt"; $ access = fopen($ databank、'w')またはdie( "cant open file"); fclose($ access);

$row = "$ent1".' | '."$ent2".' | '."$perc1a".'% | '."$perc1a_frac".'% | '."$frac1a".' | '."$perc2a".'% | '."$perc2a_frac".'%  | '."$frac2a".' | +'."$a".' | '."$new_ent1".' | '."$perc1b".'% | '."$perc1b_frac".'% | '."$frac1b".' | '."$perc2b".'% | '."$perc2b_frac".'% | '."$frac2b".' \n';
            fwrite($access, $row);
            //file_put_contents($access,$row);

文字列に関連する問題があります。どんなポインタでも大歓迎です。

4

4 に答える 4

1

#1。エラー:

警告:file_put_contents()は、パラメーター1が文字列であることを想定しています

ドキュメントでは、最初のパラメータはstring $filenameであり、その説明は次のようになっていますPath to the file where to write the data.

使用例:

$file = 'people.txt';
$current = "John Smith\n";
file_put_contents($file, $current);

#2。エラー:

警告:fwrite():3は有効なストリームリソースではありません...

繰り返しになりますが、ドキュメントでは、最初のパラメータはresource $handleであり、そのためのwxplanationであると書かれていますA file system pointer resource that is typically created using fopen().

使用例:

$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);
于 2013-01-20T09:19:58.307 に答える
1

file_put_contents()を使用すると、次のようになります。

$access-- ファイル名である必要があります。質問によると、ループ内で使用しているFILE_APPENDため、次のように新しいコンテンツを追加するために使用する必要があります。

$access = "some_filename.txt";
file_put_contents($access, $yourDataHere, FILE_APPEND | LOCK_EX);
//LOCK_EX prevents anyone else writing to the file at the same time

より良いのは、使用する機能のドキュメントを読むことです。

于 2013-01-20T09:25:03.767 に答える
0

一部の機能を使用する前に、マニュアルページを読むことをお勧めします。私自身も例外なく常にそれに従います。

たとえば、 file_put_contentsの1つから、次の2つのことを学ぶことができます。

  1. $accessファイル名である必要があります。
  2. ループ内に多くの行を書き込むには、特別なフラグを使用する必要があります。そうしないと、ファイルは常に最後の行で上書きされます。
于 2013-01-20T09:19:33.830 に答える
0

実は見落としていた

fclose($access);

fwrite() の後になるはずのときに、前に配置しました。今は大丈夫です。

于 2013-01-20T10:36:51.187 に答える