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

關於升級php7後的報錯處理

藏色散人
發布: 2023-02-17 15:20:01
轉載
3937 人瀏覽過

由於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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板