如何正確檢查PHP是否正確配置以使用DOMDocument?
P粉898049562
P粉898049562 2023-07-30 17:50:54
0
2
391

我有一個使用DOMDocument的腳本。在某些環境中,它會失敗,可能是由於某個模組未載入。我想做的是為使用此腳本的用戶提供修復此問題的指導。

以下是一個最小化的腳本,用於重現此問題:


如果我在瀏覽器中開啟(由我的目前伺服器提供,涉及Nginx),我只能看到"start!"(回傳碼為500;如果我省略try..catch,輸出相同)。所以問題不僅在於檢測正確的模組是否已安裝(我應該使用extension_loaded('dom')來檢查嗎?),而且在於try..catch似乎不起作用(我在輸出中沒有被捕獲;在當前情況下,我使用的是PHP 7.4.3)。

您有關於如何正確處理這種情況的建議嗎?


P粉898049562
P粉898049562

全部回覆 (2)
P粉973899567

當找不到一個類別時,會引發一個錯誤。該類別沒有繼承Exception,所以您的程式碼無法捕獲它。

以下程式碼可以解決這個問題:


#
try { new DOMDocument(); } catch(Error $e) { echo 'DOMDocument not available'; }

或:

try { new DOMDocument(); } catch(Throwable $t) { echo 'DOMDocument not available'; }

當然,您可以直接使用extension_loaded('dom')來偵測擴充功能是否可用。

    P粉546257913

    您可以使用class_exists()函數來測試類別是否存在。例如:


    if (!class_exists('DOMDocument')){ echo "Please install DOMDocument"; exit; }
      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!