質問

私は立ち往生し、手を必要としています。誰かが助けることができると思います?

誰もが、私はこのコードでは、「失敗した書き込み」を取得していますなぜ任意のアイデアを持っている?

$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にこれを投稿してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top