Bagaimana untuk menyemak dengan betul jika PHP dikonfigurasikan dengan betul untuk menggunakan DOMDocument?
P粉898049562
P粉898049562 2023-07-30 17:50:54
0
2
489
<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>
P粉898049562
P粉898049562

membalas semua(2)
P粉973899567

Apabila kelas tidak ditemui, ralat ditimbulkan. Kelas ini tidak mewarisi Pengecualian, jadi kod anda tidak dapat menangkapnya.

Kod berikut boleh menyelesaikan masalah ini:


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

atau:

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

Sudah tentu, anda boleh menggunakan extension_loaded('dom') terus untuk mengesan sama ada sambungan itu tersedia.

P粉546257913

Anda boleh menggunakan fungsi class_exists() untuk menguji sama ada kelas wujud. Contohnya:


if (!class_exists('DOMDocument')){
   echo "Please install DOMDocument";
   exit;
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan