Read xml data from url using curl and php
Here is some sample code (XML parsing module may not be available on your PHP installation):
<?php$url="http://www.arrowcast.net/fids/mco/fids.asp?sort=city&city=&number=&airline=&adi=A";$ch = curl_init();curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_URL, $url); // get the url contents$data = curl_exec($ch); // execute curl requestcurl_close($ch);$xml = simplexml_load_string($data);print_r($xml);?>
The variable $xml
now is a multi-dimensional key value array and you should easily be able to figure out how to get the elements from there.
// the SAX way:XMLReader myReader = XMLReaderFactory.createXMLReader();myReader.setContentHandler(handler);myReader.parse(new InputSource(new URL(url).openStream()));// or if you prefer DOM:DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();DocumentBuilder db = dbf.newDocumentBuilder();Document doc = db.parse(new URL(url).openStream());
This is the demo of how to get channel id from rss feed of youtube in which i read xml data from url using curl.
$channel_id = 'XXXXXXXX'; // put the channel id here//using curl$url = 'https://www.youtube.com/feeds/videos.xml?channel_id='.$channel_id.'&orderby=published';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');$response = curl_exec($ch);curl_close($ch);$response=simplexml_load_string($response);$json = json_encode($response);$youtube= json_decode($json, true);$count = 0;if(isset($youtube['entry']['0']) && $youtube['entry']['0']!=array()){ foreach ($youtube['entry'] as $k => $v) { $yt_vids[$count]['id'] = str_replace('http://www.youtube.com/watch?v=', '', $v['link']['@attributes']['href']); $yt_vids[$count]['title'] = $v['title']; $count++; }}else{ $yt_vids[$count]['id']=str_replace('http://www.youtube.com/watch?v=', '', $youtube['entry']['link']['@attributes']['href']); $yt_vids[$count]['title']=$youtube['title'];}echo "<pre>";print_r($yt_vids);