PHP が DOMDocument を使用するように正しく設定されているかどうかを適切に確認するにはどうすればよいですか?
P粉898049562
P粉898049562 2023-07-30 17:50:54
0
2
481
<p>DOMDocument を使用するスクリプトがあります。環境によっては、モジュールがロードされていないことが原因で失敗することがあります。私がしたいのは、このスクリプトのユーザーにこの問題を修正するためのガイダンスを提供することです。 </p><p>問題を再現する最小限のスクリプトは次のとおりです。</p><p><br /></p> <pre class="brush:php;toolbar:false;"><?php エコー「開始!」; 試す { $doc = 新しい DOMDocument(); } catch (例外 $e) { エコー「キャッチ」; } エコー「終了」; ?></pre> <p> ブラウザ (Nginx を含む現在のサーバーによって提供される) で開くと、「start!」だけが表示されます (戻りコード 500。try..catch を省略しても、出力は同じです)。したがって、問題は、正しいモジュールがインストールされているかどうかを検出するだけでなく(確認するには extension_loaded('dom') を使用する必要がありますか?)、try..catch が機能しないように見えることもあります(出力; 現在の場合、PHP 7.4.3 を使用しています)。 <br /><br />この状況に適切に対処する方法について何か提案はありますか? </p>


P粉898049562
P粉898049562

全員に返信(2)
P粉973899567

クラスが見つからない場合、エラーが発生します。このクラスは Exception を継承しないため、コードは例外をキャッチできません。

次のコードでこの問題を解決できます:


リーリー ###または:### リーリー

もちろん、extension_loaded('dom') を直接使用して、拡張機能が利用可能かどうかを検出することもできます。

いいねを押す +0
P粉546257913

class_exists() 関数を使用して、クラスが存在するかどうかをテストできます。例えば:############ リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート