Category: PHP

PHP 報錯: “Notice: Undefined variable” 及 “Notice: Undefined index”

在 C 或 Perl 這些程式語語, 在使用變數前需要先進行宣告, 而 PHP 則不需要宣告變數, 可以直接使用變數。PHP 不需要宣告變數仍可執行, 只要在某些主機會出現 Warning, 例如:上面程式碼並未宣告變數 $test, 所以會出現錯誤 “Notice: Undefined variable: test”, 但由於這個只是 warning, 所以程式會繼續執行, 除了顯示錯 warning 外, 也會顯示 100 的執行結果: Notice: …

解決 PHP 錯誤: Headers already sent

在 PHP 有一種很常見的 Warning 錯誤是 headers already sent, 出現時類似這樣:Warning: Cannot modify header information – headers already sent by (output started at /path/to/file.php:20) in /path/to/file on line 23這是在使用 session, setcookie 或 …

RHEL / CentOS 安裝 APC 加速 PHP

APC (Alternate PHP Cache) 是一套開源的 PHP 快取系統, 它可以將沒有改變 PHP Code 的情況下, 將已經編譯的結果緩存下來, 當下次需要使用時, 就可以節省重新編譯的時間及系統資源。在 RHEL 及 CentOS 安裝 APC 十分簡單, 只要透過 YUM 便可以全部完成, 以下方法在 CentOS 6 及 CentOS 7 試過都可以正確安裝。在安裝 …

編譯 PHP 常見錯誤及解決方法

相比起用套件管理員 (如 yum, apt-get) 安裝 PHP, 編譯 PHP 源碼較需要較多步驟, 最常見的問題出在套件相依性上。但由於編譯源碼安裝可以自訂各種設定, 所以還是很多情況需要編譯源碼安裝的。以下會列出在編譯 PHP 時常見的報錯及解決方法。報錯: 解決方法: # yum install bzip2-devel 報錯: 解決方法: # yum install curl-devel 報錯: 解決方法: # yum install libpng-devel …

PHP 判斷字串是否有中文

在 PHP 要判斷字串是否有中文,可以用 mb_strlen() 及 strlen() 兩個函式實現。strlen() 會回傳字串的長度,但如果是中文, 日文及韓文等文字,會回傳較長的結果。而 mb_strlen() 則可以加入編碼,例如 UTF-8 及 BIG5 等,讓 PHP 自動判斷字串的長度,只要比對 mb_strlen() 及 strlen() 回傳的字串長度,如果相同,即表示沒有中文字在字串內,如果不相同,那便表示有中、日、韓等亞洲文字存在,例如:上面 mb_strlen() 設定了字串為 UTF-8 編碼,如果是 BIG5 編碼,則要改成 BIG5, 但這樣很麻煩,只要配合 mb_detect_encoding() …

RHEL / CentOS 下 Apache, PHP 及 MySQL 的預設安裝目錄

在 RHEL 及 CentOS 透過 YUM 或 RPM 安裝的套件, 其預設安裝目錄跟編譯安裝有所不同, 以下是 Apache, PHP 及 MySQL (MariaDB) 在 RHEL 及 CentOS 的預設安裝目錄及設定檔位置:Apache:預設安裝目錄: /etc/httpd/ DocumentRoot: /var/www/html/ httpd.conf 路徑: /etc/httpd/conf/httpd.confPHP:php.ini 路徑: /etc/php.ini PHP …

RHEL / CentOS 安裝 PHP IonCube Loader 模組

IonCube Loader 是一個 PHP 的模組, 可以載入已經編碼的 PHP 程式碼並正確執行。以下文章會介紹在 CentOS 下安裝 IonCube Loader.1. 首先下載 IonCube Loader 模組到 DocumentRoot 目錄, 根據不同的系統下載合適的檔案:64-Bits: # cd /var/www/html # wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz 32-Bits: # cd /var/www/html # …

RHEL / CentOS 安裝 PHP 7, Apache, MariaDB

PHP 7 還未發佈正式版, 只發佈了 RC 1 版本, 但對於 PHP 的開發者, 預先在測試環境安裝好 PHP 7 的環境, 測試程式碼是否可以正常運作也很重要, 這裡會介紹在 RHEL 及 CentOS 安裝 Apache + MariaDB + PHP 7。安裝 MariaDB執行以下指令安裝 MariaDB: # yum …