Di dalam PHP, tersedia function untuk melakukan parsing data XML yang berasal dari situs tertentu dengan mudah . Function tersebut adalah simplexml_load_file(). Penggunaan dari function ini cukup mudah yaitu tinggal tuliskan saja target URL nya di dalam parameter function tersebut. Namun, terkadang di balik kemudahan penggunaan function simplexml_load_file() muncul juga masalah yaitu adanya Error OpenSSL ketika proses parsingnya. Bagaimana cara mengatasinya? artikel ini akan membahasnya secara jelas. Seperti yang telah dijelaskan sebelumnya bahwa penggunaan function simplexml_load_file() untuk proses parsing xml dari situs tertentu cukup mudah. Sebagai contoh misalnya diberikan script berikut ini yang mencoba memparsing data XML dari situs w3schools.com: <?php $dataXML = simplexml_load_file("https://www.w3schools.com/xml/note.xml"); print_r($dataXML); ?> Output hasil parsing script di atas adalah SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! ) Namun, terkadang proses parsing XML dengan function simplexml_load_file() seperti di atas tidak berjalan alias terdapat error, yaitu:
Biasanya error di atas muncul ketika menggunakan PHP versi lama dan situs yang menjadi target menggunakan protokol https://. Kemungkinan besar error tersebut disebabkan adanya permasalahan pada konfigurasi certificate SSL yang ada di PHP nya. Lantas, bagaimana solusinya? Solusinya adalah dengan menggunakan CURL terlebih dahulu untuk membaca data XML. Data XML yang dibaca dengan CURL ini masih dalam format string. Selanjutnya string XML tersebut barulah diparsing menggunakan simplexml_load_string(); Mengapa menggunakan CURL untuk membaca data XML nya? Ya.. karena di dalam CURL kita bisa mensetting supaya tidak ada proses verifikasi SSL nya yang menjadi sebab munculnya error di atas. Berdasarkan ide di atas, perhatikan contoh implementasinya berikut ini! <?php // target url data xml nya $url = "https://..."; // setting curl $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // menonaktifkan proses verifikasi SSL curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // baca data xml dalam bentuk string $xmlresponse = curl_exec($ch); // proses parsing xml $xml=simplexml_load_string($xmlresponse); // menampilkan struktur hasil parsing print_r($xml); ?> Berdasarkan pengalaman pribadi, teknik di atas cukup ampuh sebagai alternatif cara dari proses parsing xml dengan simplexml_load_file(), dan… alhamdulillaah terbukti sukses. Semoga tip/trik ini dapat membawa manfaat bagi yang mengalami masalah serupa seperti yang telah dijelaskan di atas. Bagikan artikel ini jika bermanfaat ! Seputar Instalasicara menghilangkan error (openSSL dan intl) pada saat instalasi moodle 2.1.1 ke xampp 1.7.4
setelah nyobain berhari hari instalasi moodle 2.1.1+ dengan xampp 1.7.4 ketemu error openssl intl solusinya : tambahkan php.ini (xampp\php\php.ini) extension=php_openssl.dll copy 7 library file dengan format icu*36.dll yaitu : (icudt36.dll di (xampp\php\...) ke (xampp\apache\bin\...) setelah itu stop apache pada xampp 1.7.4 dan start lagi... kemudian refresh halaman instalasi moodle pada browser. Seharusnya semua error sudah berstatus ok.. semoga bisa membantu teman teman sekalian sungguh luar biasa, Working gan buat tambahan, klo ada yg error pada Unicode, mungkin Penyortiran/Collation database pada MySQL bisa diganti menjadi UTF-8 jangan latin1 Penambahan script php tsb diletakkan di sebelah mana pak handoko? di script php.ini banyak sekali scriptnya... di xampp\php\php.ini
|