質問
私は立ち往生し、手を必要としています。誰かが助けることができると思います?
誰もが、私はこのコードでは、「失敗した書き込み」を取得していますなぜ任意のアイデアを持っている?
$write_file = "/usr/home/public_html/php/users_v2.sql";
$write_handle = fopen($write_file, "w") || die("Couln't open users_v2!");
if (is_writeable($write_file)) {
if ($write_handle === FALSE) echo 'Failed handle?!';
if (fwrite($write_handle, "Hi\n") === FALSE) echo "Failed write!\n";
}
fclose($write_handle);
事前に感謝します。
解決
あなたのファイルハンドルを作成するときに、OR演算子を使用することで、操作に応じて、ブール値を返しています。だから、$ write_handleではなく、ファイルのリソースの、真または偽含まれています。
:それが成功したことを書くと、テスト用のファイルを開くためのより良い方法は、このことだろう$write_handle = fopen($write_file, 'w');
if ($write_handle === false)
{
die('Could not open file ' . $write_file);
}
また、あなたは、fopen()で()、fwriteのを扱う file_put_contents
の()
機能を使用することができますそしてあなたのためにfcloseを()。あなたが同じファイルに一つだけの書き込みを実行している場合、それは多くのオーバーヘッドになるように私は、このことをお勧めします、とあなたはFILE_APPEND
フラグを渡さない限り、それはすべての書き込みのためにファイルを空にします。
他のヒント
私はそれがどこにでも使用さ見てきましたが、問題は||です死ぬ( "オープンusers_v2をCouln't!");
まず私がコメントを追加しました:
error_reporting(E_ALL);
エラーを報告しているものを見るためにPHPます。
$write_handle = fopen($write_file, "w") || die("Couln't open users_v2!");
fclose($write_handle);
返されたファイルハンドルは、「リソースID #X」で、それがなければ1の無効なストリームハンドルエラーやファイルハンドルを返します。
にラインを変更します
$write_handle = fopen($write_file, "w"); // || die("Couln't open users_v2!");
と、あなたのコードが正常に動作します。ゴナは今、php.netにこれを投稿してください。
所属していません StackOverflow