PHP unserialize 失效排查:magic_quotes_gpc、資料庫轉義與雙重編碼陷阱
專案中將陣列 serialize() 存入 MySQL TEXT 欄位,讀出後 unserialize() 拋出錯誤或回傳 false。根因多為雙重編碼或編碼不
JavaScript 建立 XMLHttpRequest 物件:跨瀏覽器相容寫法 (含 IE5/6 ActiveX)
現代標準 (IE7+, Firefox, Chrome, Safari, Edge) const xhr = new XMLHttpRequest(); 支援
PHP PDO 完全指南:連線、查詢、預處理、事務、多資料庫支援
為何選 PDO 統一介面支援 12+ 資料庫 (MySQL, PostgreSQL, SQLite, SQL Server, Oracle, ODBC…)。
PHP 簡易檔案快取函數:支援模板渲染、SQL 查詢快取、自動過期
設計目標 零依賴,單檔案即用。 支援「查詢 → 渲染模板 → 序列化存檔」完整流程。 自動判斷過期,過期則重建。 函數代碼 $data]); // 模板
PHP 字串連續字元去重:5 種實現方式效能對比 (正則 vs 迴圈)
需求 將字串中任意連續重複字元壓縮為單一字元。例:`A B C ` → `A B C `、`AMMMBMMMMCMM` → `AMBMMCM`、`A
PHP session_set_save_handler 實作 MySQL Session 儲存器 (含預處理防注入)
為何自定義 Session 處理器 多伺服器共享 Session (叢集環境)。 需查詢/統計線上用戶 (SQL 直觀)。 自定義過期策略、資料結構。 資
PHP 將相對路徑轉為絕對 URL:從 Gregarius 移植的通用函數
使用場景 抓取 RSS/Atom feed、爬蟲抓取頁面、郵件模板渲染時,HTML 內的 `href=...`、`src=...` 常為相對路徑,需轉為絕對 U
啟用 Memcached 壓縮 (MEMCACHE_COMPRESSED) 實現「擴容」:實測命中率從 50% 升至 90%
核心發現 在 PHP `memcache_set()` 中加入 `MEMCACHE_COMPRESSED` 旗標,`memcache_get()` 會自動解壓。
PHP Socket 實戰:連接 NNTP 伺服器抓取 Usenet 新聞組文章
前言 PHP 內建 `fsockopen()` 支援 TCP/UDP/Unix Socket,本文示範如何用原生 Socket 實作 NNTP (Network
PHP similar_text 函數深度解析:演算法原理、C 實現與實測差異
函數簡介 `similar_text(string $str1, string $str2, float &$percent = null)` 計算兩字串相似度
無需 mod_rewrite:純 PHP 實現偽靜態 URL 解析
核心原理 利用 `PATH_INFO`(`$_SERVER[REQUEST_URI]`)獲取完整請求路徑,自定義分隔符解析參數,注入 `$_GET` 超全域變數
MySQL Session 儲存優化方案:單 SQL 操作、Cookie 模擬與 GC 策略
背景與痛點 傳統資料庫 Session 方案存在兩大問題:自定義處理器實際應用價值低、Session 回收需額外處理;而完全避免 Session 改用頻繁資料庫
為什麼我放棄 PHP 原生 Session:自建 MySQL HEAP 表方案
原生 Session 痛點 檔案儲存受檔案系統效能限制,高併發下嚴重 擴展性差,難以整合現有系統(如線上用戶統計) SQLite 測試效能不如預期 自建方
PHP 使用者身份驗證兩大實作:HTTP Basic Auth 與 Session 機制
方法一:HTTP Basic Authentication(標準協議) 流程:伺服器回應 401 Unauthorized + WWW-Authenticate
PHP 保留與修改 GET/POST 參數的通用函數
應用場景 需在頁面間透傳並可選修改/新增查詢字串參數,例如分頁連結保留現有篩選條件、表單重導並攜帶原參數。 函數 getplus() 完整實作 $v) {
PHP 效能優化三板斧:程式碼優化、操作碼快取、輸出壓縮
一、程式碼層面優化:Zend Optimizer 移除註釋、優化中間碼。安裝後在 php.ini 加入: zend_optimizer.optimization
PHP sprintf() 函數深度解析:格式化字串完全指南與實戰範例
函數簽名 sprintf(string $format, mixed ...$values): string 依照 $format 格式化字串,回傳結果,**不