Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menyemak dengan betul jika PHP dikonfigurasikan dengan betul untuk menggunakan DOMDocument?

<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粉898049562P粉898049562420 hari yang lalu435

membalas semua(2)saya akan balas

  • P粉973899567

    P粉9738995672023-07-31 16:50:19

    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.

    balas
    0
  • P粉546257913

    P粉5462579132023-07-31 16:03:24

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


    if (!class_exists('DOMDocument')){
       echo "Please install DOMDocument";
       exit;
    }

    balas
    0
  • Batalbalas