Доработка функции проверки БС - PHP

Евгений21 год в сервисе
Данные заказчика будут вам доступны после подачи заявки
12.01.2010

Есть функция для проверки ссылок на файлы по протоколам 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-мя программистами, теперь мне уже нужно полностью работоспособная функция, чтобы к ней уже не было никаких претензий.

Слушаю ваши предложения со сроком и ценой здесь (в личку не писать).

Заявки фрилансеров