-1

我的托管公司必须更改他们的服务器或其他东西,我已经让这段代码完美地运行了 8-10 年..YEARS!.. 今天它停止了。我想知道今天 cURL 的使用是否与我 8 到 10 年前写这篇文章时发生了很大变化……请帮忙。它抓取 csv 并持续很长时间来获取文件.. 我在 20 分钟后退出浏览器.. 应该并且过去只需要 25 秒的时间。下面的第一行也是一个问题.. 不知何故,在任何其他服务器上它显示正确的 3 个月回溯日期.. 在我的服务器上,我的网站托管在.. 它显示 1969.. 所以起初我假设日期试图获取数据从 1969 年开始是滞后/滞留。但是当我将其修复为新代码时,它仍然滞后。

//$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);   

有点沮丧,因为托管公司说他们没有改变任何东西......而且有 2000 英里远,所以我在这里缺少更新的更新代码吗?

非常感谢!!

4

2 回答 2

0
  1. 检查 URL 的格式是否正确。
  2. 确保远程服务器不是永远占用的服务器。
  3. 检查服务器上的平均负载。由于严重的 IO 瓶颈,这可能是一个非常慢的写入。

此外,永远不要你的主人说“我的代码在 X 年前运行良好,现在它已经坏了,所以这是你的错”,因为那正是我们停止放屁的确切时刻。在这种特殊情况下,您的代码可能不是问题,但是有很多人向我们提出这个借口,事实是 sh*t 代码可以工作多年,直到它达到其效率图的渐近线并且只有这么多级别不在乎...他们的工作是确保服务器正常工作,他们不会为您调试代码而获得报酬。

应该做的是尽你最大的能力调查问题,包括你的发现和支持票证中的支持证据,并且永远不要暗示服务器操作“一定已经改变了某些东西”。

于 2013-03-07T23:18:29.890 回答
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);
于 2013-03-07T22:52:20.357 回答