2012-01-13 8 views
4

@copyを使用して警告を非表示にするのは良い方法ではありませんが、他に何か選択肢がありますか?PHPのコピー警告を非表示にする

コピーが動作するかどうかを確認する方法はありますか?

答えて

6

copy()を試行する前に、is_readable()およびを使用して、ソースとターゲットの状態を確認してください。

+0

私はis_readable見るには、警告をスローこれは同じものではありませんか? – danidacar

+0

is_readableは、適切なphp.ini設定を介して隠すことができ、かつ/またはログに記録できる警告をスローします。 copy()の試行でスローされるエラーのタイプは、抑止演算子に頼らずに優雅に隠すことはできません。さらに、is_readable()およびis_writable()は、copy()ができない情報を提供します。 –

1

本当に、ブラウザにエラーを表示しないでください。 php.iniでdisplay_errorsをオフにします。

次に、画面上の警告を気にする必要なしに、ブール値の戻り値で成功したかどうかをテストできます。

if (!copy('srcfile', 'destfile')) { 
    // something failed. 
} 
+5

開発中に警告を発することをお勧めします。プロダクション用に回してください。 –

+0

@Rocket私はそれが暗黙のものだと考えました。上記の明確化。 –

+0

それも考えましたが、私はそこに投げ捨てると考えました。 –

1

は、あなたが警告または通知が返されないでしょう関数の前に「@」を使用する場合がありますが、その結果(ブール値、文字列を...)しておこう。

これを試してみてください:

if ([email protected]('srcfile', 'destfile')) { 
    // something failed. 
} 
関連する問題