cURL检索CSV文件

时间:2013-03-07 22:29:55

标签: php curl csv file-transfer

我的托管公司肯定已经改变了他们的服务器或者其他东西,我已经有了8到10年的完美运行代码。几年!今天它停了下来。我想知道今天使用cURL是否与我8-10年前写的相比发生了很大变化..请帮忙。它抓住csv并持续很长时间才能获得文件..我在20分钟后退出浏览器..应该只用25秒钟就可以了。下面的第一行也是一个问题..不知何故,在任何其他服务器上它显示正确的3个月的日期..在我的服务器上我的网站托管..它显示1969 ..所以起初我假设日期试图获取数据从1969年起是lagg / holdup ..但是当我把它修改为新代码时它仍然滞后。

//$newdates = date("Ymd",strtotime(date('Ymj')) - (60 * 24 * 60 * 60));
// the above for some reason doesnt work anymore gives the 1969 date.. so below fixed

$newdates = date("Ymd", strtotime("-3 months")); 
$tm = "http://123.theserver.net/data/sel_data=*&query_str=lud>'$newdates'&dl_type=file&send_done=no&e=.csv"; 
$ch = curl_init($tm);  
$fp = fopen("/home/sites/www.mydomain.com/mx/data.csv", 'w'); 
curl_setopt($ch, CURLOPT_FILE, $fp);  
curl_setopt($ch, CURLOPT_HEADER, 0);  
curl_exec($ch); 
curl_close($ch); 
fclose($fp);   

有点frusterated导致托管公司说他们没有改变任何东西..并且在2000英里以外,所以有更新的更新代码我在这里失踪了吗?

非常感谢!!

2 个答案:

答案 0 :(得分:0)

尝试:

$newdates = date("Ymd", strtotime("-3 months"));    
$url_init = "http://123.theserver.net/data/sel_data=*&query_str=lud>'$newdates'&dl_type=file&send_done=no&e=.csv";

$ch = curl_init($url_init);

    if (!$ch) die ("Curl not loaded");

$fp = fopen("/home/sites/www.mydomain.com/mx/data.csv", 'w'); 

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $fp);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

if( ! $tmp = curl_exec($ch))
{
   echo curl_error($ch);
} 

else
{

header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=$start.csv");
header("Pragma: no-cache");
header("Expires: 0");
echo $tmp;
}
curl_close($ch);

答案 1 :(得分:0)

  1. 检查网址是否正确形成。
  2. 确保远程服务器不是永远服务器。
  3. 检查服务器上的平均负载。由于严重的IO瓶颈,这可能是一个非常慢的写入。
  4. 此外,永远不要永远向你的主人说些什么,比如“我的代码在X年之前工作正常,现在已经破了,所以它是你的错误”,因为那是我们停止给予sh * t的确切时刻。你的代码可能不是这个特定情况下的问题,但是很多人都把这个借口给了我们,事实是sh * t代码可以工作多年,直到它达到效率图的渐近线并且有很多级别的不关心...他们的工作是确保服务器正常工作,他们没有得到报酬为您调试代码。

    EM>东西”。