在 PHP 5.1.x 環境下部署 Drupal 4.6.5,強制全站 UTF-8 編碼,並修復兩個核心兼容性問題。本文記錄標準化安裝與修補流程。
includes/database.mysql.inc 約第 33 行@mysql_query("SET NAMES UTF8;");database/database.mysqlCREATE TABLE 後追加:DEFAULT CHARSET=UTF8**後續模塊安裝/升級同理,需手動補充上述兩處。**
$base_url 獲取 $_SERVER['HTTP_HOST'] 失效// 原代碼(IE 下 $_SERVER['HTTP_HOST'] 可能為空)
$base_url = 'https://' . $_SERVER['HTTP_HOST'];
// 修正:兼容 CLI/非標準環境
$base_url = isset($_SERVER['HTTP_HOST']) ? 'https://' . $_SERVER['HTTP_HOST'] : 'https://iMySQL.cn';
str_replace 大括號變量解析行為變化// 原代碼:模板替換 "{title}" -> "標題"
$copy = str_replace("{$v}", "$var", $copy);
// PHP 5.1.x 將 "{$v}" 視為字面量 "{title}" 而非變量解析
// 修正:雙引號內變量不加大括號,或用單引號拼接
$copy = str_replace($v, $var, $copy); // $v 已為 "{title}" 字符串
// 或
$copy = str_replace('{' . $key . '}', $value, $copy);
SHOW VARIABLES LIKE '%char%'; 確認連接/數據庫/表均為 UTF-8。utf8mb4。此記錄僅供歷史版本維護參考,**新項目請直接使用現代 Drupal + PHP + MySQL 棧**。