在http网站上,我有大量的csv文件存储,按时间顺序命名方案。我编写了一个PHP程序(在localhost上运行),以编程方式使用日期函数生成每个文件名,并使用file_get_
contents()在本地编写文件。
我测试了有限范围的日期,并且能够获取文件(每个大约1.3M)。但是,在很长一段时间内(比如3年,每个工作日都有一个文件),这会导致超时吗?或者它不是超时,因为响应实际上没有停止?
以下是供参考的代码:
<?php
$start_date = '08SEP2009';
$check_date = $start_date;
$end_date = '14SEP2009';
function getNextDate() {
global $check_date;
$check_date = date("dMY", strtotime ("+1 day", strtotime($check_date))); //get next date
return $check_date;
}
function downloadFiles() {
$cur_date = getNextDate();
$url = "http://nse-india.com/content/historical/DERIVATIVES/YYYY/MMM/foDDMMMYYYYbhav.csv"; //this represents the naming scheme for the CSVs
while(strcasecmp($cur_date, $end_date)) {
$year = date("Y", strtotime($cur_date)); //get year (2004)
$month = strtoupper(date("M", strtotime($cur_date))); //get month (SEP)
$day = date("d", strtotime($cur_date)); //get day of month (09)
$filename = str_replace('DD', $day, str_replace('MMM', $month, str_replace('YYYY', $year, $url))); //construct file name for new date
$content = @file_get_contents($filename);
$localfile = array_reverse(explode("/", $filename)); //reverse array so that filename.csv comes as first element
$localfile = $localfile[0]; //filename to store locally
$handle = fopen($localfile, "w");
fwrite($handle, $content); //save file locally
fclose($handle);
}
}
downloadFiles();
?>
答案 0 :(得分:0)
PHP脚本具有可配置的超时期限。通常,这在php.ini文件中默认设置为30秒,可以使用max_execution_time
设置进行配置。建议您致电set_time_limit(0)
(请参阅set_time_limit())以删除此限制。
除此之外,您的脚本应该超时的具体原因没有。您可能希望从@
电话中移除file_get_contents()
,然后handle any triggered errors yourself,以方便此过程。如果有任何问题,那么你很可能会看到问题。