MD5 + crypt:構建更安全的密碼儲存方案
背景與風險 許多早期 PHP 專案直接使用 md5($password) 儲存密碼。MD5 屬於快速雜湊演算法,配合彩虹表、線上解密網站(如 cmd5.com、
PHP 性能優化 43 條實戰建議(經典版)
前言 本文整理自 Reinhold Weber 經典文章《40 Tips for Optimizing PHP Code》,結合現代 PHP 環境(7.x/8.
如何寫出讓面試官滿意的 PHP 代碼?關鍵習慣大公開
引言 SitePoint 前面試官 Kevin Yank 曾分享《Good and Bad PHP Code》,揭露招聘過程中令他驚訝的現象:看似基礎的編碼規範
PHP Cookie 與 Session 深度解析:原理、操作與最佳實踐
前言 HTTP 是無狀態協定,Cookie 與 Session 是 Web 開發中實現狀態保持的兩大核心機制。本文系統梳理 PHP 中 Cookie 與 Ses
PHP 5.3 新特性:魔術常數 __DIR__ 詳解
背景 在 PHP 5.3 之前,若要取得目前執行腳本所在的目錄路徑,開發者必須搭配 dirname(__FILE__) 來達成。PHP 5.3 引入了 __DI
PHP 中常用 MySQL 語句速查指南
前言 在 PHP 開發中,MySQL 資料庫操作是核心技能之一。本文整理了開發過程中最常用的 MySQL 語句,涵蓋資料庫/資料表管理、欄位與索引操作、資料增刪
PHP 初學者必會 10 段精華代碼:循環、函數、遞歸、陣列、字串、日期、檔案、表單、資料庫、JSON
1. 進階 for 循環:倒數天數 for ($day = strtotime(Monday); date(l, $day) !== Monday; $day
PHP 讀取 MySQL 資料三種方式對比:mysql_fetch_row / object / array 效能與適用場景
測試環境 MySQL 5.7, PHP 7.4, 10 萬筆資料,`SELECT * FROM articles`。 三種 API 對比 函數返回結構存取方
PEAR 常用套件速查表:12 大分類、30+ 核心套件功能與現代替代方案
命名慣例 套件名 = 目錄路徑,類名 = 目錄路徑底線連接。例:`HTML/QuickForm2.php` → `HTML_QuickForm2`。單檔套件直接
PEAR Auth_HTTP 實作 HTTP Basic/Digest 認證:資料庫驅動、自定義 Realm、取消提示
安裝 pear install Auth_HTTP # 或 Composer composer require pear/auth_http 核心用法 (資料
PEAR 安裝與環境配置全攻略:include_path 設定、go-pear、Composer 共存
核心原理:include_path PHP 尋找 `require/include` 檔案順序: 腳本所在目錄 (相對路徑時)。 `include_path`
PEAR Cache_Lite 實戰教學:頁面片段快取、標籤群組失效、生命周期控制
安裝 pear install Cache_Lite # 或 Composer composer require pear/cache_lite 核心類與選項
PEAR 核心概念速覽:套件庫、編碼標準、基類框架 (與 151434 互補)
PEAR 三大支柱 套件庫:分類目錄結構 (`Net/`, `DB/`, `HTML/`, `Cache/`, `XML/`…),每個套件含 `package
PEAR 入門指南:標準化 PHP 代碼、復用套件、框架基類 (PEAR.php、PEAR_Error)
什麼是 PEAR **PHP Extension and Application Repository** — PHP 官方套件庫,類比 Perl CPAN。提
PHP curl_setopt 完整中文參考:選項分類、常用組合、錯誤碼對照
選項分類速查 長整數型 (值為 int) 常數說明典型值 CURLOPT_TIMEOUT最大執行秒數10 CURLOPT_CONNECTTIMEOUT連線等待
Web 應用優化實戰:Flickr 架構師 Cal Henderson 的 5 大核心技巧 (壓縮、快取、分發、合併、重寫)
背景 Flickr 作為 Web 2.0 代表,面對海量圖片、頻繁變動的 JS/CSS、高併發讀寫。Cal Henderson 分享的優化策略至今仍具指導意義。
PHP 防圖片盜鏈:Apache Rewrite + PHP 代碼雙重保障,支援白名單、自定義防盜鏈圖
方案一:Apache mod_rewrite (效能最佳、攔截最早) 1. 僅允許自有域名 (403 直接拒絕) SetEnvIfNoCase Referer