まず、40 分近くグーグルで検索しましたが、特定の問題に対する答えが見つかりません。エラーを修正するのが最善であることは理解していますが、それはここでは問題ではありません。
私がする必要があるのは、phpが2048エラーを報告しないようにすることです。その理由は、私はサイトを継承しており、シャットダウン機能を設定して致命的なエラーをキャッチし、テキスト メッセージを送信する必要があるからです。それはすべて問題ありません。ただし、コードは常に 2048 エラーをスローしているため、シャットダウン関数がヒットすると、最後にスローされたエラーは常に 2048 であり、実際の致命的なエラーではありません。それは問題ではないので、表示エラーをオフにする必要はありません。私が関心を持っているのはバックエンド処理です。
エラー報告をオフにして、これをテストしました。これを行うと、期待どおりの結果が得られますが、それはサーバーに他のエラーを記録できないことを意味します。E_STRICT と思われる 2048 エラーを無視したいだけです。ただし、エラー報告は E_ERROR にのみ設定されており、E_STRICT が含まれているとは思いません。
では、php が 2048 エラーの報告を完全に停止して、実際の致命的なエラーを上書きしないようにするにはどうすればよいですか? ただし、サーバー上の他のエラーをログに記録できるように、E_ERROR を保持します...
編集
これは解決されました...一種の:
そのエラーを適切に抑制する方法や、error_reporting() が error_get_last に影響する理由はまだわかりません。ただし、サーバーにエラーを記録しながらそのエラーを無視できるという根本的な問題は解決されています。エラー報告を完全にオフのままにし、エラー報告をシャットダウン機能に追加して、データを手動でログ ファイルに書き込みました。
致命的ではないすべてのエラーに使用したコードは次のとおりです。
$message="\n[".date('d-M-Y H:i:s',time())."] PHP Notice: ".$e['message']." in ".$e['file']." on line ".$e['line'];
$file=dirname(__FILE__) . '/error_log-'.date("m-d-Y").'.txt';
file_put_contents($file, $message, FILE_APPEND | LOCK_EX);
それは私が探していた答えではありませんが、それは私の問題を解決しました
平和。