PHP Iterator 迭代器內部執行流程深度解析
PHP Iterator 介面讓物件能直接用於 foreach 迴圈。理解其內部執行順序,是掌握迭代器模式、實作自訂集合類別的關鍵。 Iterator 介面五
PHPMailer 發送郵件完整實戰指南:從基礎配置到進階應用
PHP 內建 mail() 函數雖簡單,但郵件送達率極低(常被 Hotmail、Live、Outlook 等主流信箱攔截或判定為垃圾郵件)。PHPMailer
PHP exec() Shell 命令注入風險深度解析與防範指南
危險本質 exec()、shell_exec()、system()、passthru()、popen() 等函數直接調用操作系統 Shell,若參數含用戶可控數
PHP allow_url_fopen 遠端檔案存取風險與防範實務
PHP allow_url_fopen 預設開啟,讓 file_get_contents()、fopen()、include() 等檔案系統函數能直接操作 HT
PHP 後門 URL 風險與防範:敏感檔案不可置於公開目錄
常見錯誤範例: <?php $authenticated = false; $authenticated = check_auth(); if ($au
PHP Session 劫持攻擊與多層防禦策略實戰
Session 機制是 HTTP 無狀態協議下維持使用者狀態的核心,但 Session ID 一旦洩露,攻擊者即可偽裝成合法使用者——這就是 Session 劫
PHP SQL Injection 完整防範指南:從原理到實戰的纏鬥
SQL 注入(SQL Injection)是 Web 應用程式最經典也最危險的漏洞之一。其成因單純:未過濾使用者輸入與未轉義資料庫輸出這兩個關鍵步驟缺一不可,必
PHP .inc 檔案資安風險與最佳實踐:資料庫憑證保護指南
資料庫連線資訊(帳號、密碼、主機)屬於高度敏感資料,許多專案為了方便會將其集中存放於 db.inc 等引入檔中: <?php $db_user = myu
PHP set_error_handler() 自訂錯誤處理完整指南:安全與除錯的平衡術
PHP 程式執行時發生錯誤,預設會直接輸出錯誤訊息包含檔案路徑、行號與錯誤原因。開發階段這很方便,但正式環境若直接暴露伺服器實體路徑,恐成為駭客偵察攻擊面的關鍵
PHP URL 路由類實作:打造乾淨的 RESTful API 架構
早期開發手機應用 API 時,習慣使用 query_string 搭配單一 act 參數區分所有動作,這種寫法不僅難以閱讀,維護成本也極高。原本打算改用 ?c=
CodeIgniter 核心配置 config.php 完整詳解與最佳實踐
配置檔結構 application/config/config.php 回傳一個 $config 陣列,框架啟動時自動載入。 關鍵配置項詳細說明 基礎 UR
PHP 正則表達式解析 URL:parse_url 替代方案與分組詳解
RFC 3986 官方正則 <?php // 官方建議正則(分組編號對應下表) $pattern = ~^(([^:/?#]+):)?(//([^/?#]
CodeIgniter 整合 PHPCMS 模板引擎:標籤解析、快取與 MVC 適配
遷移動機 CodeIgniter 原生 View 純 PHP,前端人員需懂 PHP。PHPCMS 模板引擎提供類 Smarty 的標籤語法({$var}、{lo
PHP file_get_contents 抓取 GZIP 網頁亂碼三大解決方案
問題成因 目標網站啟用 GZIP 壓縮,回應標頭含 Content-Encoding: gzip。file_get_contents 直接回傳壓縮後的二進位資料
PHP 中文字串截取完整函式庫:UTF-8、GB2312、多編碼支援
核心挑戰:多位元組字元 中文 UTF-8 佔 3 位元組,GB2312 佔 2 位元組,直接用 substr 會切斷字元產生亂碼。 方案一:mb_substr
PHP 統計二維陣列元素出現次數:array_count_values 進階應用
問題:二維陣列無法直接統計 <?php $data = [ [apple, banana, orange], [apple, grape]
PHP 5.3 Session 變更:session_is_registered 棄用與統一遷移
PHP 5.3 Session 相關棄用清單 session_register() — 註冊全域變數到 Session session_is_register