Added exception handling when qrz or hamqth is not available/accessible.

This commit is contained in:
Jeremy Brown
2020-11-11 09:17:08 -05:00
parent 8660d3d3ce
commit 593db48556
3 changed files with 97 additions and 89 deletions

View File

@@ -56,41 +56,44 @@ class Hamqth {
public function search($callsign, $key)
{
$data = null;
try {
// URL to the XML Source
$xml_feed_url = 'https://www.hamqth.com/xml.php?id=' . $key . '&callsign=' . $callsign . '&prg=cloudlog';
// URL to the XML Source
$xml_feed_url = 'https://www.hamqth.com/xml.php?id='.$key.'&callsign='.$callsign.'&prg=cloudlog';
// 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);
// 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);
if (empty($xml)) return;
// Create XML object
$xml = simplexml_load_string($xml);
// Return Required Fields
$data['callsign'] = (string)$xml->search->callsign;
$data['name'] = (string)$xml->search->nick;
$data['gridsquare'] = (string)$xml->search->grid;
$data['city'] = (string)$xml->search->adr_city;
$data['lat'] = (string)$xml->search->latitude;
$data['long'] = (string)$xml->search->longitude;
$data['iota'] = (string)$xml->search->iota;
$data['us_state'] = (string)$xml->search->us_state;
$data['us_county'] = (string)$xml->search->us_county;
$data['error'] = (string)$xml->session->error;
// Return Required Fields
$data['callsign'] = (string) $xml->search->callsign;
$data['name'] = (string) $xml->search->nick;
$data['gridsquare'] = (string) $xml->search->grid;
$data['city'] = (string) $xml->search->adr_city;
$data['lat'] = (string) $xml->search->latitude;
$data['long'] = (string) $xml->search->longitude;
$data['iota'] = (string) $xml->search->iota;
$data['us_state'] = (string) $xml->search->us_state;
$data['us_county'] = (string) $xml->search->us_county;
$data['error'] = (string) $xml->session->error;
if($xml->search->country == "United States") {
$data['state'] = (string) $xml->search->us_state;
$data['us_county'] = (string) $xml->search->us_county;
} else {
$data['state'] = null;
$data['us_county'] = null;
}
return $data;
if ($xml->search->country == "United States") {
$data['state'] = (string)$xml->search->us_state;
$data['us_county'] = (string)$xml->search->us_county;
} else {
$data['state'] = null;
$data['us_county'] = null;
}
} finally {
return $data;
}
}
}