だから....私はファイルが書き込まれたかどうかを返す小さな関数と、そうでない理由を書いていました....次のようなものです。
array (
'success' => false, // easy, by checking function result
'reason' => 'Permission denied' // how am I supposed to find this???
)
何かが足りないかもしれませんが、ファイルの保存に失敗したときのエラーメッセージをキャプチャする方法が見つからないようです。
私が最初に思いついたのは、出力バッファリングを使用してエラーをキャプチャすることですが、それは途方もなく範囲外であり、エラーが発生しやすく、巨大なハックです(つまり、別のタイプのエラーが干渉する可能性があります)。
file_put_contents
通常、これは、f*
関数が例外をスローしないことを除いて、OOPスタイルの例外処理に適しています。
それSplFileObject
は仕事をしているようです...1つの例外を除いて。これは行ベースのクラスであり、バイナリファイルの読み取りには適していません。
助言がありますか?
PS:怠惰と呼んでください、しかし私のコードがすべての例外的なケース(書き込み許可、アクセスできないドライブ、間違ったパスなど)をチェックするべきだとは思いません。