Доработка функции проверки БС - PHP
Есть функция для проверки ссылок на файлы по протоколам ftp (через ftp_connect) и http (CURL).
Нужно отладить функцию, чтобы она работала корректно.
Функция должна выдавать следующие коды результатов:
1 – не удалось соединиться по http
2-таймаут
3-вместо файла по данной ссылке html-страница
4-пустой ответ, т.е. сервер не дал никакого ответа на запрос ссылки (такое тоже встречал)
5-не удалось соединиться по ftp
6-файл не найден на ftp
А если код больше 6, то выдаем просто код: 200, 400, 404 и т.п.
999 – этот адрес не был проверен, т.к. добавлен в список исключений, которые не проверяем.
Функция должна уметь ходить по редиректам – на 1 шаг, более не нужно.
Т.е. если по ссылке происходит редирект, а далее по новой ссылке уже выдается файл, значит ссылка в порядке (возвращать код 200, а не 301).
Исключения: задаем в массиве список хостов, для которых нет возможности провести проверку, например, narod.ru и т.п. Эти адреса функция не проверяет.
Сейчас функция работает, но возвращает неверные результаты. Например, выдает код 200, а на месте файла уже другая html-страница (нужно выдавать код 3).
Код 200 должен выдаваться только в том случае, если файл доступен, а если вместо него уже всякие странички, то значит файл недоступен.
Или выдает 0 – неизвестная ошибка, а в браузере страница не открывается, как я понял это выдается в случае проблемы с днс для данной ссылки (т.е. домен нигде не прописан) – значит и выдавать код 7, например, для этих случаев.
Функция должна работать МАКСИМАЛЬНО быстро, т.к. ей будут проверяться по 1000 ссылок и хотелось бы это делать быстрее…
А также нужно по возможности упростить код функции, чтобы все было максимально четко и коротко.
Вам будет выдан скрипт с функцией проверки БС, функцией вывода текста ошибки по коду, функцией для тестирования со 100 ссылками для примера.
Эта функция уже писалась 2-мя программистами, теперь мне уже нужно полностью работоспособная функция, чтобы к ней уже не было никаких претензий.
Слушаю ваши предложения со сроком и ценой здесь (в личку не писать).