Category: PHP

PHP 加密資料

要儲存一些敏感的資料在檔案或資料庫, 基於安全考慮還是將資料加密, 在需要時再進行解讀, 在 PHP 5.5 開始內建了加密函式 password_hash(), 操作上簡單了不少。如果在其他 PHP 版本, 便需要載入加密的相關模組, 以下是不同版本實現的方法: PHP 5.5 或以上: 要驗證用戶輸入的密碼, 可以用 password_verify(): 未到 PHP 5.5, 但在 5.3.7 或以上 (包括 Redhat PHP 5.3.3 …

PHP 日期計算

PHP 在 5.3 前要計算日期很麻煩, 在 PHP 5.3 開始已經內建相關函式, 計算日期變得簡單很多, 例如要計算兩個日期的差距, 可以這樣: 而且輸入的日期格式限制很少, 例如上面的日期格式可以輸入 2015-05-12, 或者 12-05-2015 也可以。 上面的例子是計算兩個日期相距的天數, 如果要計算往後 X 天的日期, 可以這樣做:

PHP 檢查 Email 及 URL 格式

要檢查 Email 及 URL 格式可以用正規表達式來做, 以下兩個正規表達式分別可以檢查 Email 及 URL 的格式是否正確。但要留意, 以下程式碼只會檢查格式, 而不會檢查兩者的有效性, 要檢查有效性及真實性需要用其他方法。 PHP 檢查 Email 格式 PHP 檢查 URL 格式

PHP 取得網址

PHP 內建變數包含多種不同資訊, 其中包括網址的部份, 使用上十分簡單, 只要直接調用即可: 例如網址是 http://www.phpini.com/dir123/test.php?pid=123 上面的網址會分為幾個變數: 要取得目前網址, 其實只要用 $_SERVER 及 $_SERVER, 例如: 但 http:// 通協定部份不可以直接調用, 要用 if 判斷一下, 可以這樣寫:

PHP 產生隨機密碼

很多時在廣用程式需要產生隨機密碼, 在 PHP 產生隨機密碼有不同方法可以實現, 以下會介紹透過 str_shuffle() 實現的方法。str_shuffle() 的作用是隨機打亂字串內字符的順序, 然後再用 substr() 抽出想要隨機密碼的長度:

PHP 5.4 的 session 新寫法

早前把 PHP 升級到 5.4, 發現原來可以正常運作的 PHP 程式出現以下 error: Fatal error: Call to undefined function session_register() 這個 error 就是用了未定義的函式 session_register(), 原本這個應該是 PHP 內建的,查看一下官方網站,原來 PHP 5.4 開始取消了 session_register(), session_unregister() 及 session_is_registered() …

PHP 檢查及過濾字元

如果應用程式是開放給公眾使用, 過濾輸入資料的字元十分重要, 在 PHP 可以透過正規表達式做特定字元的檢查及過濾。 例如想將輸入的資料裡面全部非字母/數字的字元過濾可以這樣做: 這樣會印出: this is a teting 以上 preg_replace() 用的正規表達式會將英文字母, 數字及空格以外的其他字串過濾掉, 如果想將特別符號留下, 不想要字母, 數字及空格, 可以這樣: 這樣會印出: %%%&&&

PHP 鎖定檔案

鎖定檔案的目的是為了避免程式間的沖突,例如開啟了一個檔案要寫入資料,但如果未寫入時有另一個程式更新這個檔案,便會出現問題,PHP 內建有 flock() 可以對檔案鎖定,操作如下: flock() 第二個參數是設定鎖定或解鎖, 詳細可設定內容為: — LOCK_SH, 取得共享鎖定, 讀取用 — LOCK_EX, 取得獨佔鎖定, 寫入用 — LOCK_UN, 解除鎖定 — LOCK_NB, 不要讓 flock() 在鎖定時堵塞