首頁 >後端開發 >PHP7 >關於升級php7後的報錯處理

關於升級php7後的報錯處理

藏色散人
藏色散人轉載
2020-05-24 17:52:283920瀏覽

由於php7的出現帶來大幅的效能提升,想體驗下新版本帶來的特性,因此做了升級。

發現網站中請求介面時發生錯誤,排查後把解決方法記錄下來

 升級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 錯誤。 

請使用 php://input 取代 $HTTP_RAW_POST_DATA, 因為它可能會在後續的 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中文網其他相關文章!

陳述:
本文轉載於:mamicode。如有侵權,請聯絡admin@php.cn刪除