Sur un site Web http, j'ai des charges de fichiers CSV stockés quel schéma de dénomination chronologique. J'ai écrit un programme PHP (s'exécutant sur localhost) pour générer par programme chaque nom de fichier à l'aide des fonctions de date et utiliser file_get_
contents() pour écrire les fichiers localement.Est-ce que l'utilisation de file_get_contents() va obtenir des fichiers cumulant plus de 1 Go à partir du serveur distant, timeout?
J'ai testé pour une gamme limitée de dates et je suis en mesure d'obtenir les fichiers (chacun environ 1,3M). Cependant, sur une longue période (disons 3 ans, avec un fichier pour chaque jour de la semaine), cela entraînerait-il un dépassement de délai? Ou n'est-ce pas un délai d'attente parce que la réponse n'a pas réellement cessé?
Voici le code de référence:
<?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();
?>
Je dois l'exécuter sur un PC Windows. Alors schtaks sera-t-il meilleur? –