내 소셜 네트워크 용 PHP 코드를 작성 중입니다. 사용자 가입 또는 프로필 업데이트시에 수행 할 작업은 입니다. yip 코드를 입력하고 검색을 위해 yahoo를 사용합니다. 거기에 위도와 경도 zipcode 나는 그곳에 사용자의 mysql 테이블에이 값을 저장합니다.이 값은 나중에 X 값 안에있는 사용자를 찾는데 사용됩니다. yahoo 서비스에 대한 PHP 및 XML에 대한 도움말
다음은 DB<?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>';
?>
이 긴 경우를 제외하고 좋은 작품에 저장하기 전에이 정보를 얻기 위해 지금까지 내 코드입니다. 및 위도. 찾을 수없는 경우 브라우저에 오류를 반환합니다.
Warning: 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
참고 : 나는 zipcode가 숫자로만되어 있는지 확인 할 수 있지만 야후는 다른 필드에서도 검색을 할 수 있으므로 오히려하지 않을 것입니다. 사용자가 우편 번호를 입력하지 않으면 도시 나 주나 심지어는 국가를 더 나쁘게 사용할 것입니다. 모든 사용자가 경도와 위도를 알아야합니다. 저장된
오류를 피하는 좋은 방법이 있습니까 아니면 거기에 오류가 ID를 감지하는 방법이며 거기에 오류가 발생하면 해당 사용자에 대한 기본값을 삽입 할 수 있습니까?
아마도 작동 할 것입니다. 내가하려는 것은 최종 사용자에게 표시되는 추악한 오류를 피하는 것입니다. – JasonDavis