php7の登場により大幅なパフォーマンス向上が見られたため、新バージョンの機能を体験したくてアップグレードしてみました。
Web サイトでインターフェイスをリクエストするときにエラーが発生したことがわかり、トラブルシューティング後の解決策を記録しました。
PHP をアップグレードした後、サイトでエラーが報告されました。プロンプトは次のとおりです。
Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set ‘always_populate_raw_post_data‘ to ‘-1‘ in php.ini and use the php://input stream instead. in Unknown on line 0 Warning: Cannot modify header information - headers already sent in Unknown on line 0
php公式サイトを確認したところ、php5.6.X以降のバージョンでは一部の機能が廃止されていることが分かりました。 ##http://php.net/manual/zh /migration56.deprecated.php
理由は次のとおりです:
$HTTP_RAW_POST_DATA 和 always_populate_raw_post_dataalways_populate_raw_post_data を使用すると、 $HTTP_RAW_POST_DATA を埋めるときに E_DEPRECATED エラーが発生しました。 $HTTP_RAW_POST_DATA の代わりに php://input を使用してください。これは、以降の PHP バージョンでは削除される可能性があります。 新しい動作を体験するには、always_populate_raw_post_data を -1 に設定します (これにより、$HTTP_RAW_POST_DATA が強制的に未定義になるため、E_DEPRECATED エラーは発生しません)。
修復方法:
1. php 設定ファイルを変更し、php.ini を見つけます。 always_populate_raw_post_data をオンにして、-1 に設定します。
always_populate_raw_post_data = -12. $HTTP_RAW_POST_DATA がプロジェクトで役立つ場合は、次のように変更します:
$info = $HTTP_RAW_POST_DATA であることが判明;
変更します$info = file_get_contents( 'php://input');PHP7推奨: "
以上がphp7バージョンアップ後のエラー処理についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。