首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP short_open_tag 關閉導致腳本不執行的排查與解決

     編輯:PHP 綜合知識

PHP 5.3+ 預設關閉 short_open_tag,導致使用 <? ?> 短標籤的腳本無法解析,顯示空白頁或原始碼。

現象

  • phpinfo() 正常顯示(使用完整標籤)
  • 專案其他頁面空白、無輸出、或直接輸出原始碼
  • 錯誤日誌無明顯報錯

解決方案

方法一:開啟 short_open_tag(快速相容舊碼)

; php.ini
short_open_tag = On

重啟 PHP-FPM/Apache 即時生效。

方法二:統一改用完整標籤(推薦,符合規範)

將所有 <? ?> 替換為 <?php ?>,<?= ?> 替換為 <?php echo ?>。

  • PHP 5.4+ <?= ?> 永遠可用,不受 short_open_tag 影響
  • XML 声明 <?xml version="1.0"?> 若在 PHP 檔案開頭會衝突,建議用 echo 輸出

延伸排查:phpinfo 正常但其他頁面異常

若完整標籤頁面也異常,檢查:

  1. 資料庫擴展是否載入(pdo_mysql、mysqli 等)
  2. 錯誤顯示設定:display_errors = On、error_reporting = E_ALL
  3. 權限問題:腳本檔案、目錄權限、open_basedir 限制

最佳實踐建議

  • 新專案強制使用 <?php ?>,避免跨環境相容性問題
  • 部署腳本包含 short_open_tag = Off 驗證,確保程式碼規範
  • 使用 php-cs-fixer 或 IDE 批次轉換標籤格式
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved