php
2012-10-10 41 views 0 likes 
0

我需要创建一个登录到远程站点的php脚本,然后在该站点上下载一个csv文件。我搜遍了所有,并没有找到任何我需要的东西。目前我只有以下代码可以让我登录到远程站点。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

你尝试过使用EXEC()命令? – artsylar

+0

取决于您需要如何确定要下载哪个csv文件。你事先知道URL吗?或者每次登录时都会更改它? – Stobor

+0

@Stobor我知道网址之前它永不改变。 – 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

相关问题