- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Сделал скрипт для поиска отсутствующих изображений. Ссылок больше тысячи.
Но все ссылки проверить скрипт не успевает "Fatal error: Maximum execution time of 180 seconds exceeded in".
Он их скачивает что-ли? Как можно ускорить процедуру? Мне нужен только заголовок, а не весь файл.
Как можно ускорить процедуру?
Лучше не ускорять, а распределять
время выполнения на много запусков.
Настроить запуски скрипта через cron например,
и обрабатывать один адрес за каждый запуск.
Если у Вас VPS/VDS, увеличьте время выполнения скрипта. Если хостинг, тоже можно попробовать. А иначе - да, распределять нагрузку.
Для получения только заголовков без тела ответа в HTTP используется метод HEAD (так, например, менеджеры закачки обычно определяют размер загружаемого файла без его скачивания).
В то же время, судя по документации php http://php.net/manual/ru/function.get-headers.php#example-4594 функция get_headers() использует метод GET, т.е. скачивает файлы. По ссылке на документацию есть способ заставить её использовать метод HEAD.
Поможет это или нет - я не знаю, теоретически должно.
Если вам это надо просто периодически делать - я бы наверно в сторону отдельных программ посмотрел, типа wget, curl (http://stackoverflow.com/questions/6136022/script-to-get-the-http-status-code-of-a-list-of-urls)
дома у себя запустите. сняв лимиты.
или сделайте вызов самого себя.
получили 10(не суть сколько) заголовков. потом скрипт вызвал самого себя с указанием новой стартовой точки
curl
Так?
$ch = curl_init($file);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $retcode;
curl_close($ch);
Так не помогло, HEAD тоже не помог, только что ошибка не показывается, а так останавливается примерно на том-же номере файла.
Ну проверяйте за раз 50 урлов из списка, потом эти 50 урлов из списка удаляйте (перезаписью файла 'свой_сайт/урлы.txt').
Урлы, которые отвечают не 200 - пишите в файл 'свой_сайт/плохие_урлы.txt', а не на экран
Задачу в крон, каждые две минуты
Через полтора-два часа получите итоговый результат в 'плохие_урлы.txt'
colorito, не, я хотел каждую ночь кроном этот скрипт запускать. А если это будет полтора часа длиться то ну его нафиг :)
Ну и пусть он круглосуточно дергает каждые две минуты
Добавьте в начало скрипта if ((date('G') < 2) or (date('G') > 4)) { die(); }
И будет работать с 2 до 4 утра, в остальные случаи - пустой вызов.
Утром проснулись - на хостинге файл со списком битых урлов.
colorito, не, я хотел каждую ночь кроном этот скрипт запускать. А если это будет полтора часа длиться то ну его нафиг :)
Так?
Я про отдельную программу curl.
Скриптом формируете список урлов и через exec дергаете внешнюю утилиту. По второй ссылке в моем посте есть скипты для wget и curl'а.