- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
У меня PHP версии 5.2.1
Код-1
Выдаёт
Warning: unlink(test.jpg) [function.unlink]: Permission denied in D:\INSTALL\PHP\Apache\htdocs\zip\zip.php
Done
Не удаляет файл test.jpg
------------------------------------
Код-2
Выдаёт
Done
Удаляет файл test.jpg
-----------------------
То есть для того чтобы удалить файл, который был добавлен в архив, надо сначала закрыть архив, и только потом удалять этот файл.
Мой скрипт скачивает файлы в цикле, архивирует их в zip-архив и удаляет.
Когда удаляемый файл всего один, то ничего страшного.
Но когда удаляемых файлов много, то:
вариант 1: в теле цикла каждый раз открывать архив, добавлять в него файл, закрывать архив, удалять файл.
вариант 2: перед началом цикла открыть архив, в теле цикла добавлять в архив файл, добавлять имя файла в массив, после цикла закрывать архив, запускать новый цикл, в котором удалять файлы из массива.
Оба варианта кажутся мне дурацкими.
Что делать?
Второй вариант не такой уж и дурацкий.
Можно просто временные файлы складывать в отдельную директорию, а потом её грохать.
;6474706']Второй вариант не такой уж и дурацкий.
Можно просто временные файлы складывать в отдельную директорию, а потом её грохать.
Файлов много, массив будет большой. Тогда надо memory_limit увеличить.
Так у меня файлы скачивает как раз в папку. О! И тогда не нужен массив!
Но ведь нужен второй цикл, который будет удалять файлы.
Я хочу, чтобы добавил файл в архив, и после этого удалил файл.
Почему эта zip-библиотека не закрывает файл, после того, как добавляет его в архив?
Вот файл и не удалить, потому что он открыт zip-библиотекой.
Тогда применяйте вариант, который я написал — просто грохать папку по покончании работы и никакие имена файлов не запоминать
;6474717']Тогда применяйте вариант, который я написал — просто грохать папку по покончании работы и никакие имена файлов не запоминать
Так ведь функция rmdir только пустые папки удаляет.
Поэтому придётся удалять файлы в папке, и только потом rmdir ("папка");
Так ведь функция rmdir только пустые папки удаляет.
Поэтому придётся удалять файлы в папке, и только потом rmdir ("папка");
Вариант 1:
Вариант 2:
Второй вариант + в конце упаковки циклом очищать папку и убивать ее.