У меня есть сценарий aa, который может загружать содержимое файла CSV и загружать ссылки в локальный каталог, файл CSV, который мне нужно загрузить, составляет около 4056 строк и 4056 FTP-файлов, сценарий отлично работает, но веб-сервер не работает, когда я его использую.Большой сценарий загрузки скриптов CSV
даже попытался установить_time_limit (0);
Есть ли способ, которым я мог бы скомпоновать сценарий и зацикливать процесс, чтобы он мог выполнять свою работу в течение нескольких часов без перерывов.
<?php
/**
* Please change your upload directory according to your needs. Make sure you include the trailing slash!
*
* Windows C:\tmp\
* Linux /tmp/
*/
$uploaddir = '/tmp/';
if(isset($_FILES['userfile']['name'])){
// Read uploaded file
$lines = file($_FILES['userfile']['tmp_name']);
echo "Reading file ... <br/>";
$linecount = 0;
foreach($lines as $line){
echo ++$linecount . ". FTP Url is : " .$line . "<br/>";
echo " Downloading " . $line . "<br/>";
$parsed_url_values = parse_url($line);
//TODO perhaps do a validation of the ftp url??
if($parsed_url_values['scheme'] == 'ftp'){
// set up basic connection
$conn_id = ftp_connect($parsed_url_values['host']);
// login with username and password
$login_result = ftp_login($conn_id, $parsed_url_values['user'], $parsed_url_values['pass']);
ftp_pasv($conn_id, true);
$path = rtrim($parsed_url_values['path'], '_');
$filename = basename($path);
if (ftp_get($conn_id, $uploaddir . $filename, $path , FTP_BINARY)) {
echo " Successfully downloaded the file " .$line . "<br/>";
} else {
echo " Could not save the file to " . $line . ". Please verify the url is correct and the file exists.<br/>";
}
} else {
echo " Sorry. This script was made for FTP downloads only.";
}
}
}
?>
<form enctype="multipart/form-data" action="" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Select the file to upload : <input name="userfile" type="file" />
<input type="submit" value="Upload" />
</form>
Позвольте мне уйти –
Дайте мне знать, если это сработало @GlennZealous – Jer
Все еще получаю 500 ошибок, начиная думать, что я нахожусь, чтобы изменить это и установить его как задание cron, если я не могу найти способ его зацикливания. Я получил ubuntu на виртуальной машине и получил это, но это все еще двойная обработка и, похоже, тоже очень медленная. –