Category: PHP

PHP 連接 MongoDB

要用 PHP 連接 MongoDB 資料庫, 需要先安裝 PHP Mongo Driver, 以下文章會以 CentOS 為例, 透過 EPEL 安裝 PHP Mongo Driver, 並用 PHP 連接 MongoDB 資料庫, 示範新增、修改及刪除資料。先加入 EPEL Repl:執行指令安裝 PHP Mongo Driver: $ …

PHP 複製/重新命名/刪除檔案

PHP 對檔案的操作, 如複製、移動及刪除檔案都已經有內建函式, 只要對檔案及寫入目錄有寫入權限, 要實現很方便。複製檔案PHP 有內建函式 copy() 可以複製檔案, :以上會將檔案 ./file1.txt 複製到 ../dir/ 目錄下 file123.txt.而 PHP 的 copy() 成功複製後, 會回傳 TRUE, 失則則傳回 FALSE, 可以判斷是否成功複製:移動檔案移動或者重新命名檔案, 即類似 Linux 下的 mv 指令, PHP 的函式是 …

PHP 轉換 MySQL 日期格式

PHP 提供很多關於日期及時間的函式, 在 MySQL 如果沒有使用 Unix timestamp 儲存時間, 而使用 MySQL 的 Date 儲存類型的話, 在轉換及計算日期方面會較麻煩。要轉換 MySQL 的日期格式, 可以使用 PHP 內建的 strtotime() 函式, 將 MySQL 的日期格式轉換為 Unix timestamp, 之後再用 date() 顯示不同格式的日期, 這個方法還有一個好處, …

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

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

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() …