PHP 7.4 не правильная работа get_headers()

АТ
На сайте с 30.12.2019
Offline
8
109

Сначала объясню для чего и как я использую get_headers().

У меня сайт с музыкальными клипами Ютуба. В конце кода страницы исполнителя или клипа я сделал проверку когда последний раз проверялись обновления и если прошло более 2 дней, то запускаем чекер обновлений командой get_headers($url). Почему командой get_headers(), а не инкладом? Да потому что чекер довольно долго отрабатывает, он скачивает автоплейлист исполнителя, все альбомы с композициями и постеры к ним и в конце уже создаёт новый кешь страницы. Всё хорошо работало больше года, но сегодня при попытке открыть страницу одного исполнителя, сайт "завис" секунд на 20-30! Пока не отработался чекер! Чекер с Ютубом работает через его стандартный API, но лимит на ключь доступа к API зарезали до 10к, а это очень мало, поэтому я юзаю 100 ключей... В чекере я сделал ошибку, если при запросе к Ютубу получаю 403 ошибку, то начинаю перебор ключей доступа, но тут ошибка не ключа доступа, а сам канал заблокирован, то есть 403 ошибка канала, а не ключа! Чекер через курлы перебирает всё 100 ключей доступа, но почему не отдается заголовок при этом? Как такое может быть?

Буду очень благодарен если кто ни будь подскажет как можно из файла php запустить паралельно другой файл php? Чекеру нужно передать только один параметр это id исполнителя, всю полученную инфу чекер не куда не передаёт, просто записывает в БД. Браузерные варианты не подходят, ну типа через скрипт JS или через картинку с редиректом. Чаще всего чекер запускают поисковые боты, а они не запускают JS скрипты и не грузят картинки...

LEOnidUKG
На сайте с 25.11.2006
Online
1550
#1

Для того, чтобы проверять 403 не нужно вам хеадер проверять. CURL уже без вас всё сделал. 

https://www.php.net/manual/ru/function.curl-getinfo.php

✅ Трастовых площадок под размещение статей и ссылок. Опыт 12 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )
АТ
На сайте с 30.12.2019
Offline
8
#2

Я проверяю хедер лишь с одной целью - запустить параллельно другой php файл!

А в заголовке ответа на файл cheker.php нет 403 ошибки, да я и не проверяю ответ собственно...

АТ
На сайте с 30.12.2019
Offline
8
#3

Выполнив

$url = 'https://site.ru/cheker.php?id='.$id;

get_headers($url);

exit;

я запускаю файл cheker.php и не дожидаюсь окончания работы этого скрипта, он всё равно на экран не чего не выдаёт, все обновы пишет в базу, а если выполнить include_once("cheker.php"); то пришлось бы ждать несколько секунд, а то и все 30 сек., когда скрипт отработает и только после этого получить страницу сайта.

L
На сайте с 22.11.2013
Offline
92
#4

паралельно запустить скрипт не дожижаясь его окончания работы можно с помощью socket или curl. 

выстави таймаут 1сек 

АТ
На сайте с 30.12.2019
Offline
8
#5

1 секунда это очень много в нынешних реалиях... Обдумываю пока вариант с кроном.

Мне просто интересно, по какой причине запрос заголовка не проходит? Из за того что ли, что вызываемый скрипт запулил серию из 100 запусков курлов?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий