Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 12.03.2020, 12:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от drmodjo
Ну это же надо в совокупности с основным кодом.
Каким кодом?

Сервер может поступать как ему вздумается, вернее разработчик - организовал передачу заголовка/статуса 404 если страница не найдена, или отдает статус 200, а на странице картинка 404. Не трудно догадаться, что это в общем-то нерабочая ссылка. Но никакой РНР скрипт этого проанализировать не может. Все что вам нужно, это get_headers(URL, 1) и анализировать статус. Все.
Ответить с цитированием
  #42 (permalink)  
Старый 12.03.2020, 13:21
Интересующийся
Отправить личное сообщение для drmodjo Посмотреть профиль Найти все сообщения от drmodjo
 
Регистрация: 12.12.2014
Сообщений: 26

А как тогда это мой скрипт проверяет если это невозможно?
Ответить с цитированием
  #43 (permalink)  
Старый 12.03.2020, 13:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от drmodjo
А как тогда это мой скрипт проверяет если это невозможно?
Ваш анализирует заголовки ответа. Тоже самое и я написал, только без лишнего мусора. А вот обмануть скрипт как два пальца ...
Ответить с цитированием
  #44 (permalink)  
Старый 12.03.2020, 15:24
Интересующийся
Отправить личное сообщение для drmodjo Посмотреть профиль Найти все сообщения от drmodjo
 
Регистрация: 12.12.2014
Сообщений: 26

Да, но мой скрипт проверяет ссылку полностью, так как надо. А ваш скрипт проверяет только до слеша. Об этой разнице я и пишу уже несколько страниц.
Ответить с цитированием
  #45 (permalink)  
Старый 13.03.2020, 00:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну-ка пример такого URL, только реального, а не фейка или из не доверенных
Ответить с цитированием
  #46 (permalink)  
Старый 13.03.2020, 01:47
Интересующийся
Отправить личное сообщение для drmodjo Посмотреть профиль Найти все сообщения от drmodjo
 
Регистрация: 12.12.2014
Сообщений: 26

<li class="span3">
<div class="thumbnail">
<a href="https://bprice.ge/keis191" target="_blank"><img src="<?=LINK?>/image/catalog/cases/191/1.jpg" width="150">
<div class="caption">
<?PHP
$content = @file_get_contents("$link/keis191");
if (strpos($http_response_header[0], "200")) {
echo "<h5>Текст при живой ссылке</h5>";
} else {
echo "<font color=red><h5>Текст если ссылка не существует</h5></font>";
}
?>
</a>
</div>
</div>
</li>
Ответить с цитированием
  #47 (permalink)  
Старый 13.03.2020, 02:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Это не URL, это хрень, которую никто проверить не сможет. Вам вообще чего надо, проверять есть ли картинка? Так для этого ну клиенте нужно проверять событие ее загрузки, а на севере настроить .htaccess, скриптов для этого не нужно.
Ответить с цитированием
  #48 (permalink)  
Старый 13.03.2020, 02:18
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

drmodjo, вы можете через сервер узнать, какой статус возвращает ресурс, и уже на клиенте раскрасить ссылки в зависимости от статуса ссылки. Вот PHP-скрипт, который «узнаёт» статус запрашиваемого ресурса...
<?php
$headers = get_headers($_GET['url']);
header($headers ? $headers[0] : $_SERVER['SERVER_PROTOCOL'] . ' 500');
header('Access-Control-Allow-Origin: *');
Для примера я его опубликовал на https://is-valid-url.malleys.repl.co/index.php

Пример...
<section>
	<a href="https://javascript.ru/forum/jquery/79699-proverka-ssylki-na-aktivnost-3.html">javascript.ru/forum/jquery/79699-proverka-ssylki-na-aktivnost-3</a>
	<a href="http://javascript.ru/forum/jquery/ams">javascript.ru/forum/jquery/ams</a>
	<a href="https://site.ru/public/1024">site.ru/public/1024</a>
	<a href="https://google.ru/">google.ru</a>
	<a href="https://bprice.ge/keis191">bprice.ge/keis191</a>
	<a href="https://javascript.ru/cat/list/j_s.gif">javascript.ru/cat/list/j_s.gif</a>
	<a href="https://javascript.ru/cat/list/js.gif">javascript.ru/cat/list/js.gif</a>
</section>

<style>
	a {
		all: unset;
		display: block;
		pointer-events: none;
		font-size: 200%;
	}

	a:before {
		content: "♻";
		color: gold;
		width: 1em;
		display: inline-block;
	}

	a.ok {
		pointer-events: all;
		text-decoration: underline;
		color: blue;
		cursor: pointer;
	}

	a.ok:before {
		content: "✔";
		color: yellowgreen;
	}

	a.error:before {
		content: "✖";
		color: red;
	}
</style>

<script>

(async function main() {
	for (const link of document.links) {
		const { status } = await fetch("https://is-valid-url.malleys.repl.co/index.php?url=" + encodeURIComponent(link));
		link.classList.add(status >= 200 && status < 400 ? "ok" : "error");
	}
})();

</script>


Всё просто — в зависимости от статуса на ссылку добавляется соответствующий класс — "ok" или "error".

Последний раз редактировалось Malleys, 13.03.2020 в 02:26.
Ответить с цитированием
  #49 (permalink)  
Старый 13.03.2020, 02:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Вы пишите какую-т хрень. Проверяем - берем url реально существующей картинки на этом форуме и запрашиваем заголовки:

print_r(get_headers('https://javascript.ru/cat/list/js.gif', 1));


Ответ:

Код:
Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Thu, 12 Mar 2020 23:24:05 GMT
    [Content-Type] => image/gif
    [Content-Length] => 2602
    [Connection] => close
    [Set-Cookie] => __cfduid=d17f92f66d695c0ffc5d1e1bc04e392951584055445; ...
    [Cache-Control] => max-age=315360000
    [Cf-Bgj] => imgq:100
    [Cf-Polished] => status=not_needed
    [ETag] => "59159012-a2a"
    [Expires] => Thu, 31 Dec 2037 23:55:55 GMT
    [Last-Modified] => Fri, 12 May 2017 10:36:02 GMT
    [CF-Cache-Status] => HIT
    [Age] => 175
    [Accept-Ranges] => bytes
    [Expect-CT] => max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
    [Server] => cloudflare
    [CF-RAY] => 57314444aa28dfe3-FRA
)
Изменим адрес на фиктивный, просто укажем несуществующее имя:

print_r(get_headers('https://javascript.ru/cat/list/j_s.gif', 1));


Ответ:

Код:
Array
(
    [0] => HTTP/1.1 404 Not Found
    [Date] => Thu, 12 Mar 2020 23:25:30 GMT
    [Content-Type] => text/html; charset=utf-8
    [Content-Length] => 162
    [Connection] => close
    [Set-Cookie] => __cfduid=d5cd26eb70e3ca33ff307d37733935bf61584055530; ...
    [Cache-Control] => max-age=86400
    [CF-Cache-Status] => EXPIRED
    [Expect-CT] => max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
    [Server] => cloudflare
    [CF-RAY] => 5731465629ec1f45-FRA
)
А что вы там у себя вытворяете, бог его знает.
Ответить с цитированием
  #50 (permalink)  
Старый 13.03.2020, 02:23
Интересующийся
Отправить личное сообщение для drmodjo Посмотреть профиль Найти все сообщения от drmodjo
 
Регистрация: 12.12.2014
Сообщений: 26

Я удивлен. Где вы там проверку картинки увидели?
Скрипт который вы всю переписку критикуете делает свое дело. А ваш не справляется с поставленной задачей. И только одно радует, что вы считаете невозможным делает этот скрипт. Наверное зря потратил ваше время. Просто надежду подал ваш статус "Профессор" под вашим псевдонимом. Извините за беспокойство.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклическая проверка ссылки biryukovm AJAX и COMET 3 25.03.2019 11:52
JS и неработающие ссылки Sovka22 Javascript под браузер 1 13.01.2018 15:37
Проверка ссылки на актуальность spinastr Ваши сайты и скрипты 1 08.04.2017 12:16
Внутри разворачивающегося по клику DIVа не работают ссылки JavaScriptNoob Элементы интерфейса 2 17.11.2015 00:01
Проверка на наличии ссылки в поле, и ее обрезание RazZzeR Элементы интерфейса 17 09.08.2012 03:15