2012-12-28 2 views
0
<a href="http://maps.apple.com/?ll=<?php echo $_GET[q] ?>" style="text- 
decoration:none;color:gray;"><div class="box" style="position:absolute;top:0px;left:0px;font-family:Lato;"><span style="float:left;">Directions</span><span style="color:#F2473F;float:right;">About <?php 
$lat = $_GET['lat']; 
$long = $_GET['long']; 
$q = $_GET['q']; 
$mysongs = simplexml_load_file('http://www.mapquestapi.com/geocoding/v1/address?key=Fmjtd%7Cluuan1urn9%2Cb0%3Do5-968206&location=' . $q . '&callback=renderGeocode&format=xml'); 
$lat2 = $mysongs->results[0]->result[0]->result[0]->locations[0]->location[0]->latLng[0]->lat; 
$long2 = $mysongs->results[0]->result[0]->result[0]->locations[0]->location[0]->latLng[0]->lng; 
$mysongs4 = simplexml_load_file('http://www.mapquestapi.com/directions/v1/route?key=Fmjtd%7Cluuan1u2nh%2C2a%3Do5-96rw5u&from=' . $lat . ',' . $long . '&to=' . $lat2 . ',' . $long2 . '&callback=renderNarrative&outFormat=xml'); 
$vari = $mysongs4->route[0]->time; 
$vari = $vari/60; 
echo round($vari); 
?> minutes</span><br></div> 

내가 뭘 잘못 했습니까? 변수 $ lat2 및 $ long2는 비어 있습니다. print_r $ mysongs에 API 키가 잘못되었다는 메시지가 표시되며 그렇지 않은 경우 403 오류가 반환됩니다.SimpleXML 구문 분석 오류

저는 이것이 $ mysongs에서 URI를 보낸 방식에 문제가 있다는 것을 확신합니다. (같은 API를 사용하기 전에 비슷한 문제가 발생했기 때문입니다).

내가 뭘 요청

은? Q = 19,540 잼버리 RD 인트 200 어바인, & 위도 = 33.852471 & 긴 CA = -117.7325256.

정말 고마워요!

+1

403 는 Forbidden' '을 의미한다. 먼저 인증을 받아야 할 수도 있습니다. –

+1

@ shiplu.mokadd.im MapQuest API에서 API 키를 통해 인증합니다. 내 게시물에서 말한 것처럼 API 키가 정확합니다. 나는 확신한다. "print_r $ mysongs에서 API 키가 잘못되었다고 말하면서 403 오류를 반환합니다. 저는 이것이 $에서 URI를 보낸 방식에 문제가 있음을 확신합니다. mysongs (같은 API를 사용하기 전에 비슷한 문제가 발생했기 때문에), 그러나 나는 어디 있는지 모르겠습니다. " –

+0

사용중인 요청 변수 (URL 매개 변수)의 내용을 알려주십시오. 감사합니다. 오, 잠깐, 신경 쓰지 마라. - 나는 그 질문에 지금 그것을 본다! –

답변

1

이것은 완벽하게 테스트 한 것입니다. 어쩌면 이것을 기초로 시작하여 거기에서부터 구축 할 수 있습니다. http://www.laprbass.com/RAY_temp_solene.php

<?php // RAY_temp_solene.php 
error_reporting(E_ALL); 
echo "<pre>"; 


// API KEYS 
require_once('api.php'); 

// REQUEST VARIABLES SIMULATED HERE 
$qadr = urlencode('19540 Jamboree Rd Ste 200 Irvine, CA'); 
$qlat = 33.852471; 
$qlng = -117.7325256; 

// CALL THE MAPQUEST SERVICE 
$mysongs = simplexml_load_file('http://www.mapquestapi.com/geocoding/v1/address?key=' . MAPQUEST_API . '&location=' . $qadr . '&callback=renderGeocode&format=xml'); 

// SHOW THE RESPONSE 
var_dump($mysongs); 

// ISOLATE THE GEOCODE OF THE RESPONSE 
$lat = (string)$mysongs->results->result->locations->location->latLng->lat; 
$lng = (string)$mysongs->results->result->locations->location->latLng->lng; 

// DO SOMETHING ELSE 
$mysongs4 = simplexml_load_file('http://www.mapquestapi.com/directions/v1/route?key=' . MAPQUEST_API . '&from=' . $qlat . ',' . $qlng . '&to=' . $lat . ',' . $lng . '&callback=renderNarrative&outFormat=xml'); 

// SHOW THE RESPONSE 
var_dump($mysongs4); 

$vari = $mysongs4->route[0]->time; 
$vari = $vari/60; 

// THE FINAL DATA WE WANT TO FIND 
echo '<h1>'; 
echo round($vari); 
echo '</h1>'; 

+0

내가 실수로 무엇을했는지 excatly 알고 싶지만 게시물에 대해 너무 고마워. –

+0

나는 코드의 관점에서 생각하지 않는다 - 나는 데이터의 관점에서 생각한다. 데이터를 볼 수있을 때면 코드가 스스로 작성한다는 것을 거의 항상 발견합니다. 다른 사람의 코드를 디버깅 할만큼 똑똑하지는 않습니다. 내 코드는 완전한 도전입니다. 내 추측으로, URL urlencode()가 필요합니다. –

+1

아, 네, 찾았습니다! 나는 $ _GET을 사용하기 때문에 모든 URL에 대해 urlencode를해야했습니다! 죄송합니다 ... 정말 고마워요 !!! :) –

관련 문제