cron サービスを使用して毎晩 PHP スクリプトを実行しています。それが出力するものはすべて、デバッグの前提としてログ ファイルに出力されます。私が使用するファイルは、関数「file_get_contents()」を使用して別のサイトから xml を取得します。しかし、関数は、既にカスタム エラーを表示しているため、実際には表示したくないエラーを返す可能性があります。
私のコードの簡単な例:
$buffer = @file_get_contents('http://xx:xx@xx/xml/xx?offset=2') or print('retry in 5 seconds');
if($buffer === false) {
sleep(5);
$buffer = @file_get_contents('http://xx:xx@xx/xml/xx?offset=2') or print('error notice');
}
問題は、最初のエラーがトリガーされ、5 秒後に再試行されることです。スローされたエラーを正しく抑制するにはどうすればよいですか?
エラーハンドラーはありますが、このエラーを個別にキャッチしたくありません。
編集: 私の解決策は、error_reporting を変更することではなく、エラー メッセージをキャッチすることでした。「file_get_contents()」で始まる場合、エラーはスローされません。これは最善の方法ではありませんが、私のために仕事をします。