Проверка битых ссылок на файловые хранилища

У меня на балбесах сложилась очень неприятная ситуация с файловым архивом (клипарты, кисти для фотошопа и т.д.) Сейчас все эти разделы наполняются пользователями. Они размещают свои файлы на различных файловых хранилищах и для скачивания дают уникальную ссылку позволяющую скачать их файл. Это все достаточно удобно, за исключением одного момента. Если файл не скачивается определенное время (обычно 1 месяц), то файловое хранилище удаляет этот файл у себя, чтобы не хранить никому не нужные данные. А это приводит к тому, что пусть через месяц, но какому-нибудь посетителю сайта понадобится этот не популярный файл.  Но файла уже нету на хранилище и, соответственно, его не скачать. И тут разочарованный пользователь идет к другому файлу, который возможно тоже уже стерт. Получается что на сайте «мертвые» линки на уже несуществующие файлы. А это уже совсем не хорошо.

В идеале надо постоянно удалять такие файлы с сайта. А как это сделать? Я начал просить посетителей сайта сообщать о таких битых ссылках через форму обратной связи. Поначалу это дало хороший эффект и таких «файлов-фантомов» почти не оставалось на балбесах. Но со временем сайт становился более популярным, и файлов стали добавлять очень много. А посетители стали лениться сообщать о битых линках. И вот настал момент, когда почти каждый день мне приходит письмо, о том, что на сайте половина линков битая. Посетители жаловались. Перелопатить несколько тысяч в ручную, как вы понимаете, очень не просто. Поэтому решил написать скрипт проверки битых ссылок на файловые хранилища для danneo 0,52 (т.к. «балбесы» на ней).

Скрипт проверки файлов на доступность написал на php с использованием класса snoopy.

Пока он чистит файлы, которые ссылаются на letitbit.net. Начал с летитбит, т.к. у меня на сайте битых ссылок на него больше всего. В дальнейшем добавлю проверку на битые ссылки и для других файловых хранилищ.

Принцип работы скрипта прост. Он берет из базы данных сайта урлы на файловые хранилища (пока только на letitbit.net), а потом парсит содержимое страниц по этим урлам. Если там говорят, что файл удален, то значит ссылка битая и страница с описанием файла переносится в отдельную рубрику (корзину), которую указывает пользователь. Это для того, чтобы «с горяча» не удалить  все нафиг.  В процессе выполнения скрипта выдается отчет.

Проверка битых ссылок

Я человек по своей природе не жадный, поэтому выкладываю этот скрипт в паблик. Кому надо, можете пользоваться.

Скачать скрипт проверки битых ссылок для danneo 0.52 (ver 1.00)

Этот скрипт не сложно переправить для работы с любой CMS. Конечно надо минимальные знания пхп и mysql.

Работает скрипт долго. Поэтому запускать его лучше с локального компьютера. Это удобнее всего делать с помощью денвера.

Не забудьте перед запуском скрипта сделать бэкап базы данных своего сайта.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *