Ich arbeite an einem PHP-Code für mein soziales Netzwerk, was ich vorhabe ist auf Benutzeranmeldung oder Profilaktualisierung Ich nehme dort Postleitzahl, die sie eingeben und Yahoo zu suchen da Breite und Logit von dort Postleitzahl Ich werde dann diese Werte zu dort Benutzer MySQL Tabelle speichern, die später verwendet werden, um Benutzer innerhalb X Menge von Meilen von ihnen zu finden. Hilfe mit PHP und XML für Yahoo Service
<?PHP
function yahoo_geo($location) {
$q = 'http://api.local.yahoo.com/MapsService/V1/geocode';
q .= '?appid=rlerdorf&location='.rawurlencode($location);
echo $q;
libxml_use_internal_errors(true);
$xml = simplexml_load_file($q);
if(!is_object($xml)) return false;
$ret['precision'] = (string)$xml->Result['precision'];
foreach($xml->Result->children() as $key=>$val) {
if(strlen($val)){
$ret[(string)$key] = (string)$val;
}
return $ret;
}
$_REQUEST['location'] = 32744; // my zip code
$a = yahoo_geo($_REQUEST['location']);
// set retunred data to some variables for storage into MySQL
$latitude = $a[Latitude];
$longitude = $a[Longitude];
// MySQL code will go here
// Output for demo
echo 'Lattitude' .$latitude. '<BR><BR>';
echo 'Longitude' .$longitude. '<BR><BR>';
?>
Dies funktioniert gut, außer wenn ein langen
Hier ist mein Code so weit diese Informationen zu erhalten, bevor
in DB speichern. und lat. wird nicht gefunden es gibt einen Fehler an den Browser zurückWarning: simplexml_load_file(http://api.local.yahoo.com/MapsService/V1/geocode?appid=rlerdorf&location=some non zipcode) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in C:\webserver\htdocs\test\geolocation\index.php on line 16
Hinweis; Ich könnte sicherstellen, dass die Postleitzahl nur numerisch ist, aber ich möchte lieber nicht, wie Yahoo mich auch mit anderen Feldern suchen lässt. Wenn ein Benutzer keine Postleitzahl eingibt, werde ich dafür sorgen, dass eine Stadt oder ein Staat oder sogar ein Land schlechter genutzt wird Also sollte jeder Benutzer eine Art Längengrad und Breitengrad haben. Gespeichert
Gibt es eine gute Möglichkeit, den Fehler zu vermeiden oder noch besser gibt es eine Möglichkeit, ID zu erkennen, gibt es einen Fehler, und wenn ein Fehler auftritt, könnte ich einen Standardwert für diesen Benutzer einfügen?
Das würde wahrscheinlich funktionieren und ja, was ich versuche zu tun, ist eine hässliche Fehler zu vermeiden, die dem Endbenutzer – JasonDavis