PHP 敏感詞過濾實作:關鍵字檔案載入、陣列遍歷與正則匹配兩種方案
內容審核系統的核心需求是敏感詞過濾。本文提供兩種 PHP 實作方案:方案一:逐詞 strpos 遍歷(簡單、適合中小詞庫)、方案二:合併正則單次匹配(高效、適合
PHP 表單輸入過濾:HTML/JS 危險代碼清洗與 XSS 防禦實戰
用戶提交的表單資料若直接輸出至 HTML 頁面,極易導致 XSS(跨站腳本攻擊)、版面錯亂、惡意重導向。本文提供兩種實用的 PHP 過濾函數:基礎版(htmls
PHP 防盜鏈完整方案:從 PHP 簡易驗證到 Apache/Nginx/IIS 伺服器層阻擋
圖片、下載檔案被外站直接引用(盜鏈)會消耗頻寬、洩露資源。本文系統整理三層防禦體系:**PHP 應用層驗證(靈活但可繞過)、Apache/Nginx 伺服器層重
PHP 導入導出 CSV 完整實戰:編碼處理、批量寫入與大數據優化
CSV(逗號分隔值)是系統間資料交換最通用的格式。本文提供一個完整的 PHP + MySQL 導入/導出 CSV 實作,涵蓋編碼轉換(UTF-8 ↔ GB231
PHP 分頁參數 SQL 注入防禦:數值型驗證與安全分頁實作
分頁參數(頁碼、每頁筆數、偏移量)是 SQL 注入高頻入口,因開發者常誤以為「數字參數安全」而直接拼接。本文以 CodeIgniter 分頁類為例,示範如何嚴格
解決 PHP 安裝 imagick 錯誤:Cannot locate header file MagickWand.h
在編譯安裝 PHP imagick 擴展時,常遇到 configure: error: Cannot locate header file MagickWand
PHP $_GET/$_POST SQL 注入防禦:addslashes_deep 全域過濾實作與局限
早期 PHP 專案常在入口檔案引入全域過濾腳本,對 $_GET、$_POST、$_COOKIE、$_REQUEST 統一執行 addslashes_deep,試
PHP addslashes_deep 安全性分析:鍵名注入風險與防禦對策
許多 PHP 專案(如 ECShop)使用 addslashes_deep() 遞迴轉義輸入資料,以防 SQL 注入。但該函數**僅轉義陣列值(value)**
PHP cURL 超時設定完整指南:秒級與毫秒級精準控制
HTTP 請求超時控制是網路程式健壯性的關鍵。PHP cURL 提供多層次超時參數,涵蓋連線階段、資料傳輸階段、DNS 快取等。本文系統整理各超時選項差異,提供
PHP 反射機制實戰:動態實例化與方法調用
PHP 反射 API(Reflection API)讓程式在執行期檢查、操作類別、介面、方法、屬性等結構,是框架開發、外掛系統、依賴注入容器的核心基石。本文透過
PHP 類別攔截器(魔術方法)深度用法指南
PHP 的魔術方法(常稱攔截器)讓物件能在執行期動態響應未定義的屬性與方法操作。本文針對 __get、__set、__call、__isset、__unset
PHP 魔術方法(攔截器)完整解析與實戰範例
PHP 提供了一組「魔術方法」(Magic Methods),常被稱為「攔截器」,它們在物件生命週期的特定時刻自動觸發,讓開發者能優雅地處理未定義屬性/方法的存
ThinkPHP 實現帶變量 Where 條件的分頁查詢完整範例
在 ThinkPHP 開發中,分頁查詢是常見需求,而帶有動態條件(如用戶 ID、搜尋關鍵字)的分頁更是實戰核心。本文將透過一個完整範例,示範如何在 ThinkP
ThinkPHP 陣列寫入資料並取得最新自增 ID 完整範例
前言 ThinkPHP 的 M() 模型提供 add() 方法支援陣列寫入,且回傳值為新增資料的自增主鍵 ID。本文以會員註冊為例,示範如何組裝資料陣列、寫入資
ThinkPHP 兩層分類遞迴讀取:父子關聯資料一次查詢輸出
前言 電商、CMS 專案常需呈現「二級分類」結構:一級分類下包含多個子分類。ThinkPHP 的 ORM 配合巢狀迴圈可輕鬆完成。本文示範以單一查詢取得所有一級
PHP 手工實作 SOAP 客戶端:fsockopen 組裝 XML 請求完整範例
前言 雖然 PHP 內建 SoapClient 類別功能強大,但在某些舊版環境、特殊協議、或需精細控制 HTTP 標頭時,手工以 fsockopen 組裝 SO
PHP uniqid() 函數深度解析:原理、缺陷與高併發下的唯一 ID 生成策略
前言 uniqid() 是 PHP 內建產生唯一識別碼的函數,常用於產生臨時檔名、Session ID、訂單編號等。但許多開發者僅知其「能產生不重複字串」,卻不
PHP PDO 處理 Oracle CLOB 字段完整指南:寫入大文本、讀取流、避坑陷阱
核心挑戰 Oracle `CLOB` (Character Large Object) 可存儲 **4GB 文本**,但 PDO 預處理默認將參數視為 `PAR