ホームページ >バックエンド開発 >PHP7 >php7バージョンアップ後のエラー処理について

php7バージョンアップ後のエラー処理について

藏色散人
藏色散人転載
2020-05-24 17:52:283935ブラウズ

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_data

always_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 = -1

2. $HTTP_RAW_POST_DATA がプロジェクトで役立つ場合は、次のように変更します:

$info = $HTTP_RAW_POST_DATA であることが判明;

変更します$info = file_get_contents( 'php://input');

推奨: "

PHP7

"

以上がphp7バージョンアップ後のエラー処理についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はmamicodeで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。