2014-12-29 2 views
0

"Trovaprezzi"와 같은 웹 사이트를 만들어야합니다. 이러한 이유로 저는 다른 웹 사이트에서 일부 데이터를 가져 와서 내 웹 사이트에 표시해야합니다. 내가 취해야 할 데이터는 링크입니다. PHP를 사용하려고 생각하고 CURL을 사용하려고했습니다. 더 나은 방법이 아니기 때문에 문제가있었습니다 (모든 페이지를 다운로드했지만 링크 만 사용할 수는 없습니다). 누군가 나를 도울 수 있습니까?PHP를 사용하여 웹 사이트에서 데이터 가져 오기

<?php 

function cURLcheckBasicFunctions() 
{ 
    if(!function_exists("curl_init") && 
     !function_exists("curl_setopt") && 
     !function_exists("curl_exec") && 
     !function_exists("curl_close")) return false; 
    else return true; 
} 

/* 
* Returns string status information. 
* Can be changed to int or bool return types. 
*/ 
function cURLdownload($url, $file) 
{ 
    if(!cURLcheckBasicFunctions()) return "UNAVAILABLE: cURL Basic Functions"; 
    $ch = curl_init(); 
    if($ch) 
    { 
    $fp = fopen($file, "w"); 
    if($fp) 
    { 
     if(!curl_setopt($ch, CURLOPT_URL, $url)) 
     { 
     fclose($fp); // to match fopen() 
     curl_close($ch); // to match curl_init() 
     return "FAIL: curl_setopt(CURLOPT_URL)"; 
     } 
     if(!curl_setopt($ch, CURLOPT_FILE, $fp)) return "FAIL: curl_setopt(CURLOPT_FILE)"; 
     if(!curl_setopt($ch, CURLOPT_HEADER, 0)) return "FAIL: curl_setopt(CURLOPT_HEADER)"; 
     if(!curl_exec($ch)) return "FAIL: curl_exec()"; 
     curl_close($ch); 
     fclose($fp); 
     return "SUCCESS: $file [$url]"; 
    } 
    else return "FAIL: fopen()"; 
    } 
    else return "FAIL: curl_init()"; 
} 

// Download from 'example.com' to 'example.txt' deal-title should-truncate 
echo cURLdownload("http://www.groupon.it/browse/salerno?category=mangiare-e-bere&page=2", "example.txt"); 

?> 
+0

링크를 가져 가야 실제로 페이지가 다운로드되는 경우 정규식을 사용하지 않는 이유는 무엇입니까? – briosheje

+0

데이터를 가져온 후 phpdom 라이브러리를 사용해보십시오. PHP에서 dom으로 HTML 문자열을 변환하고 javascript dom과 유사한 링크 (예 : $ ("a"))에 액세스 할 수있는 것보다 ... regex도 가능하지만 정규 표현식의 경우에는 ' 추가 검사를 많이하겠습니다. 필자는 phpdom library를 권할 것입니다. – razahassank

답변

관련 문제