{"id":80,"date":"2006-12-06T20:19:29","date_gmt":"2006-12-06T20:19:29","guid":{"rendered":"http:\/\/www.rumahweb.com\/journal\/curl-dan-rss-feed-reader.htm"},"modified":"2022-02-03T16:34:27","modified_gmt":"2022-02-03T09:34:27","slug":"curl-dan-rss-feed-reader","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/curl-dan-rss-feed-reader\/","title":{"rendered":"CURL dan Rss Feed Reader"},"content":{"rendered":"\n<p>Penggunaan CURL (Client URL Library) merupakan opsi terbaik yang dapat digunakan ketika setting allow_url_fopen diset off.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Curl merupakan salah satu library yang sudah didukung penggunaannya oleh PHP. Referensi mengenai Curl dan PHP : http:\/\/us2.php.net\/curl<\/p><\/blockquote>\n\n\n\n<p><strong>allow_url_fopen Off<\/strong><br \/>Yap, ketika setting allow_url_fopen diset off, maka<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fopen (\"http:\/\/namadomain.com\/path\/ke\/rssfeeds\/\",\"r\");<\/code><\/pre>\n\n\n\n<p>Ttidak akan bisa digunakan untuk membuka dan membaca Rss Feed dari URL lain. Lalu bagaimana cara mengakalinya ?Gunakan CURL, dan berikut code snippet untuk membaca Rss Feed.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;php]\r\n\/\/beri nama rss.function.php\r\n$channel = array();\r\n$defwrite = \"\";\r\n$main = \"\";\r\n$min = 0;\r\nfunction awal($parser, $nama, $attrb) {\r\nglobal $channel, $defwrite, $main;\r\nif($nama == \"RSS\" || $nama == \"RDF:RDF\" || $nama == \"ITEMS\"){\r\n$defwrite = \"\";\r\n} elseif($nama == \"CHANNEL\"){\r\n$main = \"CHANNEL\";\r\n} elseif ($nama == \"IMAGE\"){\r\n$main = \"IMAGE\";\r\n$channel&#91;\"IMAGE\"] = array();\r\n} elseif ($nama == \"ITEM\"){\r\n$main = \"ITEMS\";\r\n} else {\r\n$defwrite = $nama;\r\n}\r\n}\r\n\r\nfunction akhir($parser, $nama) {\r\nglobal $channel, $defwrite, $min;\r\n$defwrite = \"\";\r\nif ($nama == \"ITEM\") {\r\n$min++;\r\n}\r\n}\r\n\r\nfunction karakter($parser, $data) {\r\nglobal $channel, $defwrite, $main, $min;\r\nif ($defwrite != \"\") {\r\nif ($main == \"CHANNEL\"){\r\nif (isset($channel&#91;$defwrite])){\r\n$channel&#91;$defwrite] .= $data;\r\n} else {\r\n$channel&#91;$defwrite] = $data;\r\n}\r\n} elseif ($main == \"IMAGE\"){\r\nif (isset($channel&#91;$main]&#91;$defwrite])){\r\n$channel&#91;$main]&#91;$defwrite] .= $data;\r\n} else {\r\n$channel&#91;$main]&#91;$defwrite] = $data;\r\n}\r\n} elseif ($main == \"ITEMS\"){\r\nif (isset($channel&#91;$main]&#91;$min]&#91;$defwrite])){\r\n$channel&#91;$main]&#91;$min]&#91;$defwrite] .= $data;\r\n} else {\r\n$channel&#91;$main]&#91;$min]&#91;$defwrite] = $data;\r\n}\r\n}\r\n}\r\n}\r\n\r\nfunction parse($url){\r\n$runparser = xml_parser_create();\r\nxml_set_element_handler($runparser, \"awal\", \"akhir\");\r\nxml_set_character_data_handler($runparser, \"karakter\");\r\n\r\n$ch = curl_init();\r\n$timeout = 5;\r\ncurl_setopt ($ch, CURLOPT_URL, $url);\r\ncurl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);\r\ncurl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);\r\n$output = curl_exec($ch);\r\ncurl_close($ch);\r\n\r\nxml_parse_into_struct($runparser, $output, $vals, $index);\r\nxml_parser_free($runparser);\r\n\r\n}\r\n&#91;\/php]<\/code><\/pre>\n\n\n\n<p>Dibawah ini adalah cara untuk menggunakan function diatas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;php]\r\n\/\/include dengan relative path\r\ninclude (\"rss.function.php\");\r\n\/\/baca rss feed pada rumahweb.com\/journal\r\nparse('http:\/\/www.rumahweb.com\/journal\/feed\/');\r\n\/\/maksimal feed yang dibaca\r\n$max = 10;\r\nif (isset($channel&#91;\"ITEMS\"])) {\r\nif (count($channel&#91;\"ITEMS\"]) &amp;gt; 0) {\r\nfor($i = 0;$i &amp;lt; $max;$i++) { if (isset($channel&#91;\"ITEMS\"]&#91;$i]&#91;\"LINK\"])) { echo \"\r\n&lt;h2>&lt;a href=\"&amp;quot;.$channel&#91;&amp;quot;ITEMS&amp;quot;]&#91;$i]&#91;&amp;quot;LINK&amp;quot;] .&amp;quot;\">\".$channel&#91;\"ITEMS\"]&#91;$i]&#91;\"TITLE\"].\"&lt;\/a>\";\r\n} else {\r\necho \"&lt;\/h2>\r\n&lt;h2>\".$channel&#91;\"ITEMS\"]&#91;$i]&#91;\"TITLE\"].\"&lt;\/h2>\r\n\";\r\n}\r\necho $channel&#91;\"ITEMS\"]&#91;$i]&#91;\"DESCRIPTION\"];\r\n}\r\n} else {\r\nprint (\"Feed tidak ditemukan\");\r\n}\r\n}\r\n&#91;\/php]<\/code><\/pre>\n\n\n\n<p>Hasilnya, dapat dilihat di sini.<\/p>\n\n\n\n<p>Selamat Mencoba.. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Penggunaan CURL (Client URL Library) merupakan opsi terbaik yang dapat digunakan ketika setting allow_url_fopen diset off. Curl merupakan salah satu library yang sudah didukung penggunaannya oleh PHP. Referensi mengenai Curl dan PHP : http:\/\/us2.php.net\/curl allow_url_fopen OffYap, ketika setting allow_url_fopen diset off, maka Ttidak akan bisa digunakan untuk membuka dan membaca Rss Feed dari URL lain. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[2,7],"tags":[],"class_list":{"0":"post-80","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-artikel-tutorial","7":"category-web-programming"},"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p8n3G7-1i","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/80","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=80"}],"version-history":[{"count":0,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/80\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=80"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=80"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=80"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}