Debian Linux 系統升級 PHP 需要注意的事項 - 2020

Debian Linux 由 jessie 一路升級到 buster,PHP 也由 7.1、7.2 升級到 7.3,有哪些要注意的事項呢?

  • 註:此篇還是採用 mod-php 的方式,不過 PHP 升級該注意的事項都是一樣的

閱讀全文〈Debian Linux 系統升級 PHP 需要注意的事項 - 2020〉

PHP PECL 升級遇到 unsupported protocol 修復

PHP PECL 升級時,遇到下述錯誤訊息:

  • $ sudo pecl upgrade

    pear.php.net is using a unsupported protocol - This should never happen.
    upgrade failed

要如何修復呢?

閱讀全文〈PHP PECL 升級遇到 unsupported protocol 修復〉

PHP PECL 升級遇到 Command.php、XML 的錯誤修正

PHP 升級 PECL 遇到下述訊息:

$ sudo pecl upgrade

Warning: Invalid argument supplied for foreach() in Command.php on line 249
PHP Warning: Invalid argument supplied for foreach() in /usr/share/php/PEAR/Command.php on line 249

Warning: Invalid argument supplied for foreach() in Command.php on line 249
PHP Warning: Invalid argument supplied for foreach() in /usr/share/php/PEAR/Command.php on line 249

Warning: Invalid argument supplied for foreach() in PEAR/Command.php on line 249
PHP Warning: Invalid argument supplied for foreach() in /usr/share/php/PEAR/Command.php on line 249

Warning: Invalid argument supplied for foreach() in PEAR/Command.php on line 249
PHP Warning: Invalid argument supplied for foreach() in /usr/share/php/PEAR/Command.php on line 249

XML Extension not found

要如何修復呢?

閱讀全文〈PHP PECL 升級遇到 Command.php、XML 的錯誤修正〉

PHP Cookie SameSite 的設定方式

Chrome 80 之後的版本,預設的 Cookie 設定將會無法跨站存取 Cookie 值,若想要允許 Cookie 跨網站存取的話(SameSite = None),需要使用 HTTPS 才可以。

  • 註:SameSite 用來阻止瀏覽器將 Cookies 跨網站發送 (prevents the browser from sending this cookie along with cross-site requests)

閱讀全文〈PHP Cookie SameSite 的設定方式〉

PHP 標準化的 RFC、ISO 日期時間格式

在串接資料的時候,常常會看到 2018-06-03T08:02:20+08:00 之類的,這些日期格式大多都是有公開標準的,PHP 裡面有將大多數的標準都設定好可以直接使用囉~

閱讀全文〈PHP 標準化的 RFC、ISO 日期時間格式〉

vim-php-manual:Vim 使用 Shift-k 秀出 PHP Manual 的 Plugin

使用 Vim 撰寫 PHP 的程式時,知道 Function 名稱,但是不曉得參數的順序,或者想要速查看 PHP 的文件,可以使用此外掛。

閱讀全文〈vim-php-manual:Vim 使用 Shift-k 秀出 PHP Manual 的 Plugin〉

PHP 的變數 何時做記憶體釋放

PHP 變數 assign 很大的值,會直接吃掉不少記憶體,此變數使用後,要釋放掉這些記憶體,可以使用 unset() 或者設為空、null 等等。

雖然手動清空變數的記憶體,不過通常程式都不會立即釋放出來,在 PHP 的情況是怎麼樣呢?

  • 註:此篇測試環境是 Linux + PHP 7.0

閱讀全文〈PHP 的變數 何時做記憶體釋放〉

PHP 處理 Base64 URL 的編碼、解碼方式

PHP 使用 Base64 來做編碼(Encode)、解碼(Decode) 是很簡單的,使用下述兩個 Function 即可:

而 Base64 編碼的結尾都會有等號(=),若看到 Base64 沒有等號的話,要怎麼處理呢?

閱讀全文〈PHP 處理 Base64 URL 的編碼、解碼方式〉