Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проверка ссылки на активность (https://javascript.ru/forum/jquery/79699-proverka-ssylki-na-aktivnost.html)

drmodjo 12.03.2020 02:06

(Не работает, в смысле ссылку считает рабочей и отображает Yes)

laimas 12.03.2020 08:36

Цитата:

Сообщение от drmodjo
Если в начале, где site.ru, то меняет на No.
В чем может быть проблема?

РНР язык, а не браузер, за вас он не подставит в url текущий домен, протокол, вы обязаны сами формировать полный URL. В данной функции сначала проверяется корректность URL (FILTER_VALIDATE_URL), и если он некорректен, то возвращается false.

laimas 12.03.2020 08:39

Цитата:

Сообщение от drmodjo
Не работает, в смысле ссылку считает рабочей и отображает Yes

А он и не производит анализ, он анализирует ответ сервера. Запросите так:

echo '<pre>' . print_r(get_headers(URL, 1), 1);


и проанализируйте заголовки.

PS. Вашей ссылке нет доверия со стороны браузера, такое же недоверие будет и со стороны РНР - проблема в сертификате, от чего функция не будет выполнена.

drmodjo 12.03.2020 09:51

Дорогой laimas, ссылку указал верно. Полный URL и соответствующий домен. Исходя из тестов скрипт не проверят ссылку после слэша. Как можно это исправить?

laimas 12.03.2020 11:27

Цитата:

Сообщение от drmodjo
ссылку указал верно. Полный URL и соответствующий домен

Вот чем отвечают браузеры по запросу этой ссылки:

Opera

Ваше подключение не является приватным
Не удалось подтвердить, что это сервер site.ru. Его сертификат безопасности относится к home.inforos.ru. Возможно, сервер настроен неправильно или кто-то пытается перехватить ваши данные.

NET::ERR_CERT_COMMON_NAME_INVALID

Firefox

Предупреждение: Вероятная угроза безопасности

Firefox Developer Edition обнаружил вероятную угрозу безопасности и не стал открывать site.ru. Если вы посетите этот сайт, нападавшие могут попытаться похитить вашу информацию, такую как пароли, адреса электронной почты или данные банковских карт.

Другие браузеры также соблюдают меры безопасности, это же делает и РНР (вернее сказать сервер), запрашивая по безопасному протоколу, проверят сертификат.

drmodjo 12.03.2020 11:36

site. ru - это просто пример.
И данный скрипт прекрасно делает свою работу. Проблема в задержке.
<?PHP
$content = @file_get_contents("ССЫЛКА НА РЕСУРС");
if (strpos($http_response_header[0], "200")) {
echo "<h5>ЕСЛИ СУЩЕСТВУЕТ</h5>";
} else {
echo "<font color=red><h5>ЕСЛИ НЕ СУЩЕСТВУЕТ</h5></font>";
}
?>
Еще раз отмечу, что ваш скрипт работает в формате site.ru, а если ссылка имеет продолжение типа site.ru/что-тотам, то он не проверят все что после слеша. А ведь весь смысл в этом.

laimas 12.03.2020 11:53

Сколько же вам можно повторять, что $content = @file_get_contents("ССЫЛКА НА РЕСУРС"); полнейшая хрень в контексте вашей задачи. Вам нужно только знать есть или нет, зачем вы загружаете содержимое?

echo print_r(get_headers('http://javascript.ru/forum/jquery/ams', 1), 1);


Такого нет на форуме, и что вы получаете? А о времени отклика, так это будет зависеть от множества факторов, мгновенного ответа вы и не получите.

drmodjo 12.03.2020 12:11

Это я уже понял.
Прошу вас без лишних текстов, чтобы уже оставить вас в покое. :-)
Напишите мною присланный скрипт в исправленном виде, полностью. Чтобы скопировать и вставить. Либо ваш скрипт, но чтобы он проверял ссылку полностью. Ибо то, что после слеша он не проверяет. И все, больше мучать вас не буду.

laimas 12.03.2020 12:40

Цитата:

Сообщение от drmodjo
Ибо то, что после слеша он не проверяет.

Это как понимать? Это выполняли echo print_r(get_headers('http://javascript.ru/forum/jquery/ams', 1), 1);?

drmodjo 12.03.2020 12:45

Ну это же надо в совокупности с основным кодом. Который под header надо сделать так? Полностью можете код прислать?


Часовой пояс GMT +3, время: 04:42.