2011-10-01 3 views
0

Google지도 좌표가있는이 코드는 내부에 있지만 좌표를 얻으려고하지만 어딘가에 문제가 있습니다.xpath dom preg_match

<iframe width="430" scrolling="no" height="250" frameborder="0" src="http://maps.google.cz/maps/ms?msa=0&hl=cs&brcurrent=5,0,0&ie=UTF8&vpsrc=6&msid=207589766138527801127.0004aadb2c99231cecabd&ll=44.782627,20.48152&spn=0.003808,0.009205&z=16&output=embed" marginwidth="0" marginheight="0"/> 

그리고 난이 코드로 좌표를 얻을려고 : 코드는

$string = curl($e->textContent); 

    preg_match('#&ll=(.*?)&#is', $string, $matches); 
    list($lat, $lng) = explode(',', $matches[1]); 
    $data['lat'] = $lat; 
    $data['lng'] = $lng; 

하지만 일을 해달라고!

어디에서 문제가 발생합니까? 내가 틀린 곳!


이 직장 내 전체 코드,하지만 해달라고 (영어 죄송합니다).

function curl($url){ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_ENCODING, "gzip"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
} 

libxml_use_internal_errors(true); 



$dom = new DOMDocument(); 
@$dom->loadHTMLFile('http://www.kupoman.rs/aktivne-ponude/'); 
$xpath = new DOMXPath($dom); 
$entries = $xpath->query("//div[@class='dealcontent']/h1/a/@href"); 
$output = array(); 
$i = 1; 
foreach($entries as $e) { 
    $dom2 = new DOMDocument(); 
    @$dom2->loadHTMLFile($e->textContent); 
    $xpath2 = new DOMXPath($dom2); 
    $data = array(); 
$string = $xpath2->query("//iframe/@src")->item(0)->textContent; 
$data['link']= ($e->textContent); 
    $data['naslov'] = trim($xpath2->query("//div[@class='dealcontent']/h1")->item(0)->textContent); 
    $data['slika'] = trim($xpath2->query("//div[@class='slideshow']/img[1]/@src")->item(0)->textContent); 

    preg_match('/.*&ll=([\d.,]+)&.*/', $string, $matches); 
list($lat, $lng) = explode(',', $matches[1]); 
$data['lat'] = $lat; 
$data['lng'] = $lng; 

모두 좋지만 좌표 잘못이 많이있다 0,0 :(

답변

0

입니다있다 xpath 표현식이 없으면 정규식이 잘못되어 어떤 이유로 curl을 호출하고 있습니다.

$dom = new DOMDocument(); 
@$dom->loadHTML('<iframe width="430" scrolling="no" height="250" frameborder="0" src="http://maps.google.cz/maps/ms?msa=0&hl=cs&brcurrent=5,0,0&ie=UTF8&vpsrc=6&msid=207589766138527801127.0004aadb2c99231cecabd&ll=44.782627,20.48152&spn=0.003808,0.009205&z=16&output=embed" marginwidth="0" marginheight="0"/>'); 

$xpath = new DOMXPath($dom); 
$string = $xpath->query("//iframe/@src")->item(0)->textContent; 

preg_match('/.*&ll=([\d.,]+)&.*/', $string, $matches); 
list($lat, $lng) = explode(',', $matches[1]); 
$data['lat'] = $lat; 
$data['lng'] = $lng;