如何正確檢查PHP是否正確配置以使用DOMDocument?
P粉898049562
P粉898049562 2023-07-30 17:50:54
0
2
428
<p>我有一個使用DOMDocument的腳本。在某些環境中,它會失敗,可能是由於某個模組未載入。我想做的是為使用此腳本的用戶提供修復此問題的指導。 </p><p>以下是一個最小化的腳本,用於重現此問題:</p><p><br /></p> <pre class="brush:php;toolbar:false;"><?php echo 'start!'; try { $doc = new DOMDocument(); } catch (Exception $e) { echo 'catched'; } echo 'end'; ?></pre> <p>如果我在瀏覽器中開啟(由我的目前伺服器提供,涉及Nginx),我只能看到"start!"(回傳碼為500;如果我省略try..catch,輸出相同)。所以問題不僅在於檢測正確的模組是否已安裝(我應該使用extension_loaded('dom')來檢查嗎?),而且在於try..catch似乎不起作用(我在輸出中沒有被捕獲;在當前情況下,我使用的是PHP 7.4.3)。 <br /><br />您有關於如何正確處理這種情況的建議嗎? </p><p><br /></p>
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學習者快速成長!