| 
									
										
										
										
											2012-11-14 01:02:43 +08:00
										 |  |  | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Controls the interaction with the QRZ.com Subscription based XML API. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Qrz { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Return session key
 | 
					
						
							|  |  |  | 	public function session($username, $password) { | 
					
						
							|  |  |  | 		// URL to the XML Source
 | 
					
						
							| 
									
										
										
										
											2021-05-10 23:59:51 +08:00
										 |  |  | 		$xml_feed_url = 'http://xmldata.qrz.com/xml/current/?username='.$username.';password='.urlencode($password).';agent=cloudlog'; | 
					
						
							| 
									
										
										
										
											2012-11-14 01:02:43 +08:00
										 |  |  | 		 | 
					
						
							|  |  |  | 		// CURL Functions
 | 
					
						
							|  |  |  | 		$ch = curl_init(); | 
					
						
							|  |  |  | 		curl_setopt($ch, CURLOPT_URL, $xml_feed_url); | 
					
						
							|  |  |  | 		curl_setopt($ch, CURLOPT_HEADER, false); | 
					
						
							|  |  |  | 		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | 
					
						
							|  |  |  | 		$xml = curl_exec($ch); | 
					
						
							|  |  |  | 		curl_close($ch); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		// Create XML object
 | 
					
						
							|  |  |  | 		$xml = simplexml_load_string($xml); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		// Return Session Key
 | 
					
						
							|  |  |  | 		return (string) $xml->Session->Key; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	// Set Session Key session.
 | 
					
						
							|  |  |  | 	public function set_session($username, $password) { | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2012-11-14 09:16:17 +08:00
										 |  |  | 		$ci = & get_instance(); | 
					
						
							|  |  |  | 		 | 
					
						
							| 
									
										
										
										
											2012-11-14 01:02:43 +08:00
										 |  |  | 		// URL to the XML Source
 | 
					
						
							| 
									
										
										
										
											2021-05-10 23:59:51 +08:00
										 |  |  | 		$xml_feed_url = 'http://xmldata.qrz.com/xml/current/?username='.$username.';password='.urlencode($password).';agent=cloudlog'; | 
					
						
							| 
									
										
										
										
											2012-11-14 01:02:43 +08:00
										 |  |  | 		 | 
					
						
							|  |  |  | 		// CURL Functions
 | 
					
						
							|  |  |  | 		$ch = curl_init(); | 
					
						
							|  |  |  | 		curl_setopt($ch, CURLOPT_URL, $xml_feed_url); | 
					
						
							|  |  |  | 		curl_setopt($ch, CURLOPT_HEADER, false); | 
					
						
							|  |  |  | 		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | 
					
						
							|  |  |  | 		$xml = curl_exec($ch); | 
					
						
							|  |  |  | 		curl_close($ch); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		// Create XML object
 | 
					
						
							|  |  |  | 		$xml = simplexml_load_string($xml); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		$key = (string) $xml->Session->Key; | 
					
						
							| 
									
										
										
										
											2012-11-14 09:16:17 +08:00
										 |  |  | 	 | 
					
						
							|  |  |  | 		$ci->session->set_userdata('qrz_session_key', $key); | 
					
						
							| 
									
										
										
										
											2012-11-14 01:02:43 +08:00
										 |  |  | 		 | 
					
						
							|  |  |  | 		return true; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-30 00:28:10 +08:00
										 |  |  | 	public function search($callsign, $key, $use_fullname = false) | 
					
						
							| 
									
										
										
										
											2012-11-14 01:02:43 +08:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-11-11 22:17:08 +08:00
										 |  |  |         $data = null; | 
					
						
							|  |  |  |         try { | 
					
						
							|  |  |  |             // URL to the XML Source
 | 
					
						
							|  |  |  |             $xml_feed_url = 'http://xmldata.qrz.com/xml/current/?s=' . $key . ';callsign=' . $callsign . ''; | 
					
						
							| 
									
										
										
										
											2012-11-14 01:02:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-11 22:17:08 +08:00
										 |  |  |             // CURL Functions
 | 
					
						
							|  |  |  |             $ch = curl_init(); | 
					
						
							|  |  |  |             curl_setopt($ch, CURLOPT_URL, $xml_feed_url); | 
					
						
							|  |  |  |             curl_setopt($ch, CURLOPT_HEADER, false); | 
					
						
							|  |  |  |             curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | 
					
						
							|  |  |  |             $xml = curl_exec($ch); | 
					
						
							|  |  |  |             curl_close($ch); | 
					
						
							| 
									
										
										
										
											2020-03-08 00:36:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-11 22:17:08 +08:00
										 |  |  |             // Create XML object
 | 
					
						
							|  |  |  |             $xml = simplexml_load_string($xml); | 
					
						
							|  |  |  |             if (empty($xml)) return; | 
					
						
							| 
									
										
										
										
											2020-03-08 00:36:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-11 22:17:08 +08:00
										 |  |  |             // Return Required Fields
 | 
					
						
							|  |  |  |             $data['callsign'] = (string)$xml->Callsign->call; | 
					
						
							| 
									
										
										
										
											2020-11-12 01:18:37 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-12 03:38:00 +08:00
										 |  |  |             if ($use_fullname === true) { | 
					
						
							| 
									
										
										
										
											2020-11-14 02:30:37 +08:00
										 |  |  |                 $data['name'] =  (string)$xml->Callsign->fname. ' ' . (string)$xml->Callsign->name; | 
					
						
							| 
									
										
										
										
											2020-11-12 01:18:37 +08:00
										 |  |  |             } else { | 
					
						
							| 
									
										
										
										
											2020-11-14 02:30:37 +08:00
										 |  |  |                 $data['name'] = (string)$xml->Callsign->fname; | 
					
						
							| 
									
										
										
										
											2020-11-12 01:18:37 +08:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2020-11-14 02:43:33 +08:00
										 |  |  |             $data['name'] = trim($data['name']); | 
					
						
							| 
									
										
										
										
											2020-11-11 22:17:08 +08:00
										 |  |  |             $data['gridsquare'] = (string)$xml->Callsign->grid; | 
					
						
							|  |  |  |             $data['city'] = (string)$xml->Callsign->addr2; | 
					
						
							|  |  |  |             $data['lat'] = (string)$xml->Callsign->lat; | 
					
						
							|  |  |  |             $data['long'] = (string)$xml->Callsign->lon; | 
					
						
							|  |  |  |             $data['iota'] = (string)$xml->Callsign->iota; | 
					
						
							|  |  |  |             $data['qslmgr'] = (string)$xml->Callsign->qslmgr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if ($xml->Callsign->country == "United States") { | 
					
						
							|  |  |  |                 $data['state'] = (string)$xml->Callsign->state; | 
					
						
							|  |  |  |                 $data['us_county'] = (string)$xml->Callsign->county; | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 $data['state'] = null; | 
					
						
							|  |  |  |                 $data['us_county'] = null; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } finally { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             return $data; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2012-11-14 01:02:43 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | } |