PHP: SimpleXML ถูกโหลดหรือไม่

ฝากรูป 11843590 วิ

มีปลั๊กอินสองสามตัวที่ฉันสร้างขึ้นซึ่งต้องใช้ PHP5 + และ SimpleXML. SimpleXML เป็นวิธีการแยกวิเคราะห์การตอบสนอง XML ที่ง่ายและมีประสิทธิภาพดีกว่ามาก APIเอส. อย่างไรก็ตามปัญหาคือฉันจะได้รับอีเมลสองสามฉบับต่อวันหรือสัปดาห์เพื่อถามว่าทำไมผู้ใช้ไม่สามารถโหลดโปรแกรมได้และส่งผลให้เกิดข้อผิดพลาด

เห็นได้ชัดว่าการแจ้งเตือนของฉันเกี่ยวกับปลั๊กอินและในหน้าโครงการไม่เพียงพอดังนั้นฉันจึงทำสิ่งที่ถูกต้องและเพิ่มฟังก์ชันการทำงานให้กับปลั๊กอินทั้งสองเพื่อตรวจสอบว่าโหลดส่วนขยาย SimpleXML แล้ว

ฟังก์ชัน PHP เพื่อตรวจสอบส่วนขยาย SimpleXML ถูกโหลด:

ฟังก์ชัน isSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ result = เท็จ; foreach ($ array เป็น $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} ส่งคืน $ result; }

ตอนนี้ภายในฟังก์ชั่นที่ใช้ SimpleXML ฉันสามารถมั่นใจได้ว่ามันโหลดก่อนที่จะลองเรียก SimpleXML จริงๆ ถ้า

if (! isSimpleXMLLoaded ()) {echo "โฮสต์ไซต์ของคุณที่อื่น!"; กลับ; }

ฉันรู้ว่าฉันมีผู้เชี่ยวชาญด้าน PHP ที่คอยจับตาดูบล็อกของฉันบอกให้ฉันรู้ว่าฉันทำได้อย่างไร! ฉันได้เปิดตัวการอัปเดตเล็กน้อยสำหรับปลั๊กอินทั้งสองเพื่อใช้วิธีนี้

6 คอมเมนต์

  1. 1

    สวัสดี Doug

    ฉันสังเกตเห็นข้อบกพร่องหนึ่งซึ่งอาจไม่ทำให้เกิดข้อผิดพลาด

    ถ้า ($ value =“ SimpleXML”) {$ result = true; }

    ควรจะเป็น

    ถ้า ($ value ==“ SimpleXML”) {$ result = true; }

    แม้ว่าเพื่อความปลอดภัย ฉันชอบ.

    ถ้า (strtolower ($ value) ==“ simplexml”) {$ result = true; }

    คุณยังสามารถใช้ "extension_loaded" ซึ่งใช้ชื่อส่วนขยายในการตรวจสอบ (พิจารณาตัวพิมพ์เล็กและใหญ่)

    $ loaded = extension_loaded (“ SimpleXML”);

    ส่งคืนค่า TRUE หรือ FALSE

    ปล. ไม่ได้ดื่มกาแฟเอง แต่อาจใส่ปุ่ม "ซื้อโดนัทให้ฉันสักกล่อง" 🙂

    • 2

      เอาปุ่มโดนัทขึ้นนิค! คุณเป็นผู้ช่วยชีวิต! สิ่งที่ตลกคือ (ลบ strtolower) ฉันมีโค้ดตัวอย่างของฉันทำงานอยู่และใช้การประเมินที่ถูกต้อง มันต้องสายแน่ ๆ เพราะพอใส่เข้าไปฉันก็ทำมันพัง!

      ฉันได้แก้ไขโค้ดและบล็อกโพสต์แล้ว คำถาม: ข้อได้เปรียบของคนอื่นหรือไม่? ฉันเดาว่า extension_loaded เป็นวิธีที่สะอาดและรวดเร็วกว่าในการจัดการกับสิ่งนี้!

      ขอบคุณ Nick!

  2. 4

    ยำติดตั้ง php55-xml.x86_64 เพื่อติดตั้ง simpleXML สำหรับ php 5.5.11

    กำลังทำธุรกรรม
    การติดตั้ง: php55-xml-5.5.11-1.el6.x86_64 1/1
    การตรวจสอบ: php55-xml-5.5.11-1.el6.x86_64 1/1

    จากนั้นก็ติดตั้ง
    /usr/lib64/php/modules/simplexml.so

  3. 5

คุณคิดอย่างไร?

ไซต์นี้ใช้ Akismet เพื่อลดสแปม เรียนรู้วิธีการประมวลผลข้อมูลความคิดเห็นของคุณ.