2012-10-10 3 views
0

원격 사이트에 로그인 한 다음 해당 사이트에서 CSV 파일을 다운로드하는 PHP 스크립트를 만들어야합니다. 나는 온통 검색했고 내가 필요한 것을 찾지 못했습니다. 현재 나는 원격 사이트에 로그인 할 수있는 다음 코드 만 가지고 있습니다.PHP 원격 사이트에 로그인하여 csv를 다운로드하십시오

<?php 
$username=""; 
$password=""; 
$url=''; 
$cookie=""; 
$postdata = 'email='.$username.'&pass='.$password; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;  rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_REFERER, $url); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt($ch, CURLOPT_POST, true); 
$result = curl_exec($ch); 
echo $result; 
curl_close($ch); 

>

+0

당신이 간부() 명령을 사용하여 시도? – artsylar

+0

다운로드 할 CSV 파일을 결정하는 방법에 따라 다릅니다. 미리 URL을 알고 있습니까? 또는 로그인 할 때마다 변경됩니까? – Stobor

+0

@Stobor 나는 그것이 결코 바뀌지 않는다는 것을 알고 있기 전에 url을 안다. – dewbop12

답변

0

어떻게 같은 약 :

<?php 
$username=""; 
$password=""; 
$url=''; 
$csvurl=''; 
$cookie=""; 
$postdata = 'email='.$username.'&pass='.$password; 

/*first log in*/ 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;  rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_REFERER, $url); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt($ch, CURLOPT_POST, true); 
$result = curl_exec($ch); 
echo $result; 

/*now download the file*/ 
curl_setopt($ch, CURLOPT_URL, $csvurl); 
curl_setopt($ch, CURLOPT_REFERER, $url); 
$result = curl_exec($ch); 
echo $result; 


curl_close($ch); 
?> 
+0

감사합니다. @Stobor .. 그것은 작동하지 않는 것 같습니다. 로그인 후 CSV 링크가 방문 페이지에 있지 않기 때문입니다. csv 링크가있는 페이지로 리디렉션해야합니까? – dewbop12

+0

로그인과 csv 다운로드간에 사이트가 수행하는 작업에 따라 다릅니다. 내 코드는 이미 로그인 url과 csv url이 다르다고 가정합니다. 더 자세한 정보가 필요하다면 사이트에 대한 추가 정보 또는 작동하지 않는 정보가 필요합니다. – Stobor

관련 문제