Wie kann ich richtig überprüfen, ob PHP für die Verwendung von DOMDocument richtig konfiguriert ist?
P粉898049562
P粉898049562 2023-07-30 17:50:54
0
2
430
<p>Ich habe ein Skript, das DOMDocument verwendet. In manchen Umgebungen schlägt es fehl, möglicherweise weil ein Modul nicht geladen ist. Ich möchte Benutzern dieses Skripts eine Anleitung zur Behebung dieses Problems geben. </p><p>Hier ist ein minimales Skript, um das Problem zu reproduzieren: </p><p><br /></p> <pre class="brush:php;toolbar:false;"><?php echo 'start!'; versuchen { $doc = new DOMDocument(); } Catch (Ausnahme $e) { Echo 'gefangen'; } echo 'Ende'; ?></pre> <p> Wenn ich es in einem Browser öffne (der von meinem aktuellen Server mit Nginx bereitgestellt wird), sehe ich nur „start!“ (Rückgabecode 500; wenn ich try..catch weglasse, ist die Ausgabe dieselbe). Das Problem besteht also nicht nur darin, festzustellen, ob das richtige Modul installiert ist (sollte ich extension_loaded('dom') verwenden, um dies zu überprüfen?), sondern auch darin, dass try..catch nicht zu funktionieren scheint (ich bleibe dabei nicht hängen Ausgabe; im aktuellen Fall verwende ich PHP 7.4.3). <br /><br />Haben Sie Vorschläge, wie Sie mit dieser Situation richtig umgehen können? </p><p><br /></p>
P粉898049562
P粉898049562

Antworte allen(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;
}
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!