[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавляем сайт в zip archive
inpost
Сделал свой простой архиватор. Достаточно установить права доступа 755 (или 775, 777 в зависимости от хостинга) на папку сайта, в которую поместим архив. 2 функции, вторая запускается из первой.
Хотелось бы услышать, что я делаю не так, может какой-то функцией замедляю скорость работы скрипта? Если не будет ответов, переброшу в "Готовые решения", чтоб не захламлять, пока просто хочу услышать советы.
Скрипт выполняется за одну секунду, архивирует приблизительно 20мб =)
В phpinfo у нас должно стоять: Zip: enabled.

function allDir($dir,&$files)
{
$result = scandir($dir);
unset($result[0],$result[1]);
foreach($result as $v)
{
if (is_dir($dir."/".$v))
{
allDir($dir."/".$v,$files);
}
else
{
$filename = $dir."/".$v;
$files[] = substr($filename,2);
}
}
}

function addToZip($start)
{
$files = array();
allDir($start,$files);

$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
foreach($files as $v)
{
$zip->addFile($v, $v);
}
$zip->close();
echo '<a href="test.zip">test.zip</a>';
}
else
{
echo 'failed add to Archive';
}
}


addToZip("."); // где точка - начальная папка, с которой вести архивацию, в данном случае с той папки, в которой лежит скрипт.




Спустя 14 минут, 54 секунды (5.11.2010 - 23:34) kirik написал(а):
inpost
А зачем разбивать на 2 функции? Как укать какую папку/и нужно архивировать?
На некоторых бесплатных хостингах нет zip архиватора (всмысле класса)..

Спустя 3 минуты, 40 секунд (5.11.2010 - 23:38) inpost написал(а):
kirik
На бесплатных хостингах вообще многое отсутствует =)))
Первая функция - просто сканирует сайт, можно использовать отдельно папку с фотографиями для других целей, вывести все фотографии из папки к примеру:
$files = array; 
allDir("img/photos",$files);


$start = "."; - это и есть, с какой папки сканировать. Сейчас начинается с той, в которой лежит скрипт.

Спустя 8 минут, 47 секунд (5.11.2010 - 23:47) kirik написал(а):
Цитата (inpost @ 5.11.2010 - 15:38)
На бесплатных хостингах вообще многое отсутствует =)))

Для универсальности нужно сделать проверку, если есть зип - юзать его, если нет - использовать свой зип-класс.
Цитата (inpost @ 5.11.2010 - 15:38)
$start = "."; - это и есть, с какой папки сканировать.

Наверное стоит вынести это как аргумент к функции addToZip().
И еще.. зачем там 777 на все ставить? Не безопасный совет.

Спустя 14 минут, 3 секунды (6.11.2010 - 00:01) inpost написал(а):
kirik
Вынес как аргумент, отредактировал первое сообщение. И права 777 надо на ту папку, куда записывается архив, если не ошибаюсь.

Спустя 9 минут, 4 секунды (6.11.2010 - 00:10) kirik написал(а):
Цитата (inpost @ 5.11.2010 - 16:01)
И права 777 надо на ту папку, куда записывается архив, если не ошибаюсь.

Сори, не правильно понял. Все же лучше хотя бы 755..

Спустя 10 минут, 18 секунд (6.11.2010 - 00:20) inpost написал(а):
kirik
У меня 755 не проходит скрипт. Как минимум 775.


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

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