PHP: Adakah SimpleXML Dimuat?

Depositphotos 11843590 s

Terdapat beberapa plugin yang saya buat yang memerlukan PHP5 + dan SimpleXML. SimpleXML adalah kaedah yang lebih mudah dan lebih baik untuk menguraikan tindak balas XML dari APIs. Masalahnya, bagaimanapun, adalah bahawa saya akan menerima beberapa e-mel sehari atau minggu yang bertanya kepada saya mengapa pengguna tidak dapat memuat program dan mengakibatkan kesilapan.

Nampaknya, notis saya pada plugin dan halaman projek tidak mencukupi, jadi saya melakukan perkara yang betul dan menambahkan fungsi pada kedua-dua plugin tersebut untuk mengesahkan bahawa sambungan SimpleXML dimuat.

Fungsi PHP untuk memeriksa sambungan SimpleXML dimuat:

fungsi isSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ hasil = palsu; foreach ($ array sebagai $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ hasil = benar; }} pulangkan hasil $; }

Sekarang, dalam fungsi yang menggunakan SimpleXML, saya dapat memastikannya dimuat sebelum saya benar-benar mencuba panggilan SimpleXML. Sekiranya

if (! isSimpleXMLLoaded ()) {gema "Host laman web anda di tempat lain!"; kembali; }

Saya tahu saya mempunyai beberapa guru PHP yang mengawasi blog saya, beritahu saya bagaimana saya melakukannya! Saya telah mengeluarkan kemas kini kecil untuk kedua-dua Plugin untuk menggunakan kaedah ini.

6 Komen

  1. 1

    Hai Doug,

    Saya perhatikan satu bug yang mungkin tidak menimbulkan ralat.

    if ($ value = "SimpleXML") {$ hasil = benar; }

    sepatutnya

    if ($ value == "SimpleXML") {$ hasil = benar; }

    Walaupun demi keselamatan. Saya lebih suka.

    if (strtolower ($ value) == "simplexml") {$ hasil = benar; }

    Anda juga dapat menggunakan 'extension_loaded' yang akan memeriksa nama ekstensi (peka huruf besar kecil).

    $ Load = extension_loaded ("SimpleXML");

    Mengembalikan BENAR atau SALAH.

    PS Jangan minum kopi sendiri tetapi saya boleh meletakkan butang 'belikan saya sekotak donat' 🙂

    • 2

      Angkat butang donat itu, Nick! Anda penyelamat! Yang melucukan ialah (tolak strtolower), saya sebenarnya telah menjalankan kod sampel saya dan menggunakan penilaian yang tepat. Ia pasti terlambat kerana pada masa saya memasukkannya, saya telah merosakkannya!

      Saya telah mengubah kod dan catatan blog. Soalan: Apa kelebihan antara yang lain? Saya rasa extension_loaded adalah cara yang lebih bersih dan cepat untuk menangani perkara ini!

      Terima kasih Nick!

  2. 4

    yum pasang php55-xml.x86_64 untuk memasang simpleXML untuk php 5.5.11

    Transaksi Berjalan
    Memasang: php55-xml-5.5.11-1.el6.x86_64 1/1
    Mengesahkan: php55-xml-5.5.11-1.el6.x86_64 1/1

    dan kemudian dipasang
    /usr/lib64/php/modules/simplexml.so

  3. 5

Apa yang anda fikir?

Laman web ini menggunakan Akismet untuk mengurangkan spam. Ketahui bagaimana data komen anda diproses.