Bagaimana untuk menyemak dengan betul jika PHP dikonfigurasikan dengan betul untuk menggunakan DOMDocument?
P粉898049562
2023-07-30 17:50:54
<p>Saya mempunyai skrip yang menggunakan DOMDocument. Dalam sesetengah persekitaran ia gagal, mungkin kerana modul tidak dimuatkan. Apa yang saya mahu lakukan ialah memberikan panduan untuk membetulkan isu ini untuk pengguna skrip ini. </p><p>Berikut ialah skrip minimum untuk menghasilkan semula isu: </p><p><br /></p>
<pre class="brush:php;toolbar:false;"><?php
bergema 'mula!';
cuba {
$doc = new DOMDocument();
} tangkapan (Pengecualian $e) {
gema 'ditangkap';
}
gema 'akhir';
?></pra>
<p> Jika saya membukanya dalam penyemak imbas (disediakan oleh pelayan semasa saya, melibatkan Nginx), saya hanya melihat "mula!" Jadi masalahnya bukan sahaja mengesan sama ada modul yang betul dipasang (perlukah saya menggunakan extension_loaded('dom') untuk menyemak?), tetapi juga percubaan itu..catch nampaknya tidak berfungsi (saya tidak terperangkap dalam output; dalam kes semasa, saya menggunakan PHP 7.4.3). <br /><br />Adakah anda mempunyai sebarang cadangan tentang cara mengendalikan situasi ini dengan betul? </p><p><br /></p>
Apabila kelas tidak ditemui, ralat ditimbulkan. Kelas ini tidak mewarisi Pengecualian, jadi kod anda tidak dapat menangkapnya.
Kod berikut boleh menyelesaikan masalah ini:
atau:
Sudah tentu, anda boleh menggunakan extension_loaded('dom') terus untuk mengesan sama ada sambungan itu tersedia.
Anda boleh menggunakan fungsi class_exists() untuk menguji sama ada kelas wujud. Contohnya: