PHP: SimpleXML có được tải không?

Ký gửi 11843590 s

Có một số plugin mà tôi đã xây dựng yêu cầu PHP5 + và SimpleXML. SimpleXML là một phương pháp phân tích cú pháp các phản hồi XML dễ dàng hơn và hoạt động tốt hơn từ APIS. Tuy nhiên, vấn đề là tôi sẽ nhận được một vài email mỗi ngày hoặc một tuần hỏi tôi tại sao người dùng không thể tải chương trình và nó dẫn đến lỗi.

Rõ ràng, thông báo của tôi về các plugin và trên các trang dự án là không đủ, vì vậy tôi đã làm đúng và thêm chức năng vào cả hai plugin để xác minh rằng phần mở rộng SimpleXML đã được tải.

Hàm PHP để kiểm tra phần mở rộng SimpleXML được tải:

function isSimpleXMLLoaded () {$ array = array (); $ array = get_loaded_extensions (); $ result = false; foreach ($ array as $ i => $ value) {if (strtolower ($ value) == "simplexml") {$ result = true; }} trả về kết quả $; }

Bây giờ, trong các chức năng sử dụng SimpleXML, tôi có thể đơn giản đảm bảo rằng nó được tải trước khi tôi thực sự thử lệnh gọi SimpleXML. Nếu

if (! isSimpleXMLLoaded ()) {echo "Lưu trữ trang web của bạn ở một nơi khác!"; trở về; }

Tôi biết tôi có một số chuyên gia về PHP theo dõi blog của tôi, hãy cho tôi biết tôi đã làm như thế nào! Tôi đã phát hành các bản cập nhật nhỏ cho cả hai Plugin để sử dụng phương pháp này.

6 Comments

  1. 1

    Chào Doug,

    Tôi đã nhận thấy một lỗi có thể không gây ra lỗi.

    if ($ value = “SimpleXML”) {$ result = true; }

    nên là

    if ($ value == “SimpleXML”) {$ result = true; }

    Mặc dù vì lợi ích an toàn. Tôi thích.

    if (strtolower ($ value) == “simplexml”) {$ result = true; }

    Bạn cũng có thể sử dụng 'extension_loaded' lấy tên tiện ích mở rộng để kiểm tra (phân biệt chữ hoa chữ thường).

    $ loading = extension_loaded (“SimpleXML”);

    Trả về TRUE hoặc FALSE.

    PS Đừng tự uống cà phê nhưng tôi có thể đặt nút 'mua cho tôi một hộp bánh rán' 🙂

    • 2

      Lấy nút bánh rán đó lên, Nick! Bạn là một người cứu mạng! Điều buồn cười là (trừ strtolower), tôi thực sự đã chạy mã mẫu của mình và sử dụng đánh giá đúng. Chắc là đã muộn vì đến lúc đút vào, tôi đã làm rối tung nó lên rồi!

      Tôi đã sửa đổi mã và bài đăng trên blog. Câu hỏi: Bất kỳ lợi thế của cái này hơn cái kia? Tôi đoán rằng extension_loaded là một cách giải quyết vấn đề này nhanh chóng và gọn gàng hơn nhiều!

      Cảm ơn Nick!

  2. 4

    yum cài đặt php55-xml.x86_64 để cài đặt simpleXML cho php 5.5.11

    Đang chạy giao dịch
    Đang cài đặt: php55-xml-5.5.11-1.el6.x86_64 1/1
    Đang xác minh: php55-xml-5.5.11-1.el6.x86_64 1/1

    và sau đó nó được cài đặt
    /usr/lib64/php/modules/simplexml.so

  3. 5

Bạn nghĩ gì?

Trang web này sử dụng Akismet để giảm spam. Tìm hiểu cách xử lý dữ liệu nhận xét của bạn.