[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с памятью при выполнении скрипта.
Manul_87
Помогите пожалуйста решить такую проблему:
при выполнении скрипта:


PHP
$lines=file('base_for_xml_p.dat');
$pik="pictures";
$i=count($lines);
include(
"zip.lib.php");
$createZip = new Zip;


for(
$d=0;$d<$i;$d++) {
$dt explode ("|"$lines[$d]);
for(
$h=27;$h<47;$h++)  { $createZip -> add_dir("$dt[0]/");
if(
$dt[$h]!=="") {





$fileContents file_get_contents("$pik/$dt[0]/$dt[$h]");
$createZip -> add_File($fileContents"$dt[0]/$dt[$h]");



}
} }

$fileName "$pik.zip";
$fd fopen ($fileName"wb");
$out fwrite ($fd$createZip -> get_file());
fclose ($fd);


Скрипт отвечает за архивацию достаточно большого объёма файлов.
Время срабатывания скрипта при этом не имеет значения, т.к. выполняться будет на cron. Каким образом можно прерывать работу скрипто каждое 20-е $i , чтобы база архивировалась частями?



Спустя 10 минут, 31 секунда (12.10.2009 - 16:43) twin написал(а):
Прервать цикл можно оператором break или return. Я не вижу только в этом особого смысла...

Спустя 20 часов, 33 минуты, 27 секунд (13.10.2009 - 13:16) Manul_87 написал(а):
Как я понимаю эти операторы прерывают цикл окончательно, а мне в этой ситуации было бы желательно, чтобы цикл взяв первые 20 папок останавливался, на то время пока скрипт занят их обработкой, затем освобождалась память, после чего скрипт брал бы следующие 20 и так до конца пока не будет достигнута значение $d-1=$i

Спустя 5 минут, 24 секунды (13.10.2009 - 13:22) Manul_87 написал(а):
Либо, если возможно, какой нибудь функцией увеличить объём памяти разрешённой для использования скриптом, но лучше конечно частями, т.к. при увеличении базы проблема будет возникать снова и снова.

Спустя 31 секунда (13.10.2009 - 13:22) Семён написал(а):
sleep();
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.