- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую!
Есть база данных, в ней записана инфа о файлах. Файлы хранятся в папке и переименованы под айди из базы. Файлов много, записей в базе тоже соответственно. Более 10к
Бывает такое, что удаляется файл из папки, а запись в базе остается. Бывает наоборот - запись удаляется, а файл в папке остается. Иногда файлы весят очень много, а вручную все отследить и удалить ненужное - просто ах...шь
Сделал простую проверку на несуществующие файлы, при этом запись в базе есть.
Запись удалить проще, т.к. таких ненужных записей немного.
Код:
$result = mysqli_query($link, 'select * from `work` order by `id`');
while($row=mysqli_fetch_assoc($result)) {
$dir_name=floor($row['id']/1000);
$filename = '/var/www/host/work/'.$dir_name.'/'.$row['id'].'.tno';
if (file_exists($filename)) {
echo '';
} else {
echo 'Файл '.$row['id'].' <font color="red">не существует</font><br />';
}}
Теперь не могу сделать, что бы сканировалась папка и показывались те файлы, которых нету в базе. А таких много и место занимают впустую...
Допустим: ид с номером 1,4,8,9,10 есть, и файлы 2.tno, 3.tno, 5.tno есть. Как сделать так, что бы в списке выводились эти файлы? (В базе записей нет, а файлы просто так лежат).
Искал, пробовал, так и не получилось..
Структура таблицы: id (autoincrement), filename, date, size
Надеюсь понятно все описал.
В "этом" списке разумеется никак - Вы получаете список из базы, в которой этих файлов нет.
glob, scandir - помогут Вам получить список файлов в папке.
Потом проходя по списку проверяйте их наличие в базе и выводите.
Ничего не получается у меня (( Может еще подскажете?
scandir, readdir вам в помощь.
RecursiveDirectoryIterator пройдите всю папку рекурсивно, файл потом через explode и получите ID которое ищите потом в базе