2013-11-24 1 views
-1

의 XML을 가져 오는 PHP. 저는 Google 개발자의 숙제 프로젝트 인 : https://developers.google.com/maps/articles/phpsqlsearch_v3#outputxml에 참여하고 있습니다. 기본적으로 PHP에서 URL을 XML로 가져온 다음 javascript를 사용하여 HTML 파일에서 XML 컨텐츠를 읽습니다. 재미있는 것들 말이야? PHP를 작성한 적이 없으므로 올바르게 코딩하고 있는지 확신 할 수 없습니다. URL에서

function searchLocationsNear(center) { 
    clearLocations(); 

    var address = document.getElementById("addressInput").value; 
    var radius = document.getElementById('radiusSelect').value; 
    var searchUrl = 'phpGenXML.php?address=' + address + '&radius=' + radius; 
    downloadUrl(searchUrl, function(data) { 
     var xml = parseXml(data); 
     var markerNodes = xml.documentElement.getElementsByTagName("marker"); 
     var bounds = new google.maps.LatLngBounds(); 

     //Create markers 
     for (var i = 0; i < markerNodes.length; i++) { 
     var name = markerNodes[i].getAttribute("name"); 
     var address = markerNodes[i].getAttribute("address"); 
     var distance = parseFloat(markerNodes[i].getAttribute("distance")); 
     var latlng = new google.maps.LatLng(
       parseFloat(markerNodes[i].getAttribute("lat")), 
       parseFloat(markerNodes[i].getAttribute("lng"))); 

     createOption(name, distance, i); 
     createMarker(latlng, name, address); 
     bounds.extend(latlng); 
     } 
     map.fitBounds(bounds); 
     locationSelect.style.visibility = "visible"; 
     locationSelect.onchange = function() { 
     var markerNum = locationSelect.options[locationSelect.selectedIndex].value; 
     google.maps.event.trigger(markers[markerNum], 'click'); 
     }; 
     }); 
    } 

그래서 나는 XML에 당기면서 내가 뭔가 잘못하고있어 걱정 해요 :

<?php 

// Get parameters from URL - PHP accepting 2 variables from index.html 
$address = $_GET["address"]; 
$radius = $_GET["radius"]; 
// ------------------------------------------------------------------ 

// Start XML file 
$dom = new \DOMDocument("1.0"); 

header("Content-type: text/xml"); 

$dom = file_get_contents('http://api.remix.bestbuy.com/v1/stores(area(' + $address + ',' + $radius + '))?show=name,address,distance,lat,lng&apiKey=fuzgmrj4nv8v9ummatn78m3k'); 
file_put_contents('file.xml', $dom); 

echo $dom->saveXML(); 
?> 

이것은 PHP가 XML을 생성 읽고 자바 스크립트입니다 : 다음은 내 PHP입니다. 누구나 괜찮은지 말해 줄 수 있습니까?

감사합니다, 토미

+1

[코드 리뷰는 (http://codereview.stackexchange.com/)이 더 나은 곳이 될 것입니다 –

답변

0

귀하의 PHP 코드가 몇 가지 오류가 있습니까 : PHP에서

  • 병합은 .보다는 +으로 이루어집니다.
  • DOMDocument의 인스턴스를 만든 다음 변수에 다시 할당합니다. $domsaveXML()을 호출하려고하는 문자열이되어 오류가 발생합니다.
  • file_put_contents() 당신이 생각하는대로하지 않습니다. documentation을 살펴보십시오.

대신을 시도해보십시오

$address = $_GET['address']; 
$radius = $_GET['radius']; 

// sanitise $address and $radius 

header('Content-type: application/xml'); 
echo file_get_contents('http://api.remix.bestbuy.com/v1/stores(area(' . $address . ',' . $radius . '))?show=name,address,distance,lat,lng&apiKey=fuzgmrj4nv8v9ummatn78m3k');