[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проверить URL на валидность
westgiggs
здравствуйте народ как можно проверить урл на валидность при помощи curl или подскажите свои способ?

сам сделал вот так

$uracho = "http://yandex.ru";
$kli = $rosta['id'];

if (isset($_GET['chek'])) {
$check=mysql_query("SELECT * FROM kompan WHERE id='".$_GET['kli']."' AND user='".$_SESSION['id']."'", $dbcnx);
if (mysql_num_rows($check)> 0) {
$chekout = mysql_fetch_array($check);
$ch = curl_init($uracho);
ob_implicit_flush(0) ;
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$results=curl_exec($ch);
curl_close ($ch);

//////// здесь не знаю как с if
if ($results != "") {

mysql_query ("UPDATE kompan SET activ=1 WHERE id='".$chekout['id']."'");
} else {

}
} }




Спустя 39 минут, 24 секунды (5.10.2010 - 23:12) Invis1ble написал(а):
юзай гугл, там все есть

Спустя 19 часов, 52 минуты, 38 секунд (6.10.2010 - 19:05) kirik написал(а):
Когда-то для себя писал такую функцию:
function checkStatus($url)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_NOBODY, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_FAILONERROR, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$status = curl_exec($curl);
curl_close($curl);
return !empty($status);
}

Возвращает true если страница существует и false в обратном случае.

Спустя 21 час, 25 минут, 14 секунд (7.10.2010 - 16:30) westgiggs написал(а):
Цитата (kirik @ 6.10.2010 - 16:05)
Когда-то для себя писал такую функцию:
function checkStatus($url)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_NOBODY, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_FAILONERROR, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$status = curl_exec($curl);
curl_close($curl);
return !empty($status);
}

Возвращает true если страница существует и false в обратном случае.

не работает sad.gif

Спустя 2 часа, 21 минута, 22 секунды (7.10.2010 - 18:51) olex0731 написал(а):
почему-бы не просто file_get_contents или get_headers ????

Спустя 20 минут, 39 секунд (7.10.2010 - 19:12) FatCat написал(а):
Цитата (kirik @ 6.10.2010 - 20:05)
true если страница существует и false в обратном случае

$status = curl_getinfo($ch,CURLINFO_HTTP_CODE);

Получаем код ответа сервера.

Спустя 7 минут, 47 секунд (7.10.2010 - 19:20) olex0731 написал(а):
$headers=get_headers('http://www.google.com');
if(preg_match('/3[0-9]{2}/',$headers[0]))
echo 'up!';

Спустя 5 минут, 47 секунд (7.10.2010 - 19:25) arvitaly написал(а):
Цитата
$headers=get_headers('http://www.google.com');
if(preg_match('/3[0-9]{2}/',$headers[0]))
  echo 'up!';


По приколу)

HTTP/300 302 Found

Спустя 25 минут, 35 секунд (7.10.2010 - 19:51) olex0731 написал(а):
Цитата
HTTP/300 302 Found

эээ, 300 - ет что?

Спустя 5 минут, 2 секунды (7.10.2010 - 19:56) arvitaly написал(а):
Цитата
эээ, 300 - ет что?


Чуть позже покажу

Спустя 6 минут, 1 секунда (7.10.2010 - 20:02) olex0731 написал(а):
$headers=get_headers('http://www.google.com');
if(preg_match('/ 3[0-9]{2}/',$headers[0]))
echo 'up!';

=))

Спустя 56 минут, 24 секунды (7.10.2010 - 20:58) arvitaly написал(а):
Цитата
Чуть позже покажу

http://tresha.ru, предыдущим своим кодом попробуйте)

Да и новый нерабочий - нормальный ответ сервера вообще 200

Спустя 30 минут, 19 секунд (7.10.2010 - 21:29) olex0731 написал(а):
регулярка:
'/ [2|3][0-9]{2}/'

да, действительно, совсем забыл про 200... Но это не единственный нормальный ответ;) 30x - признак того, что страница находится под другим реальным uri ... Совершенно нормальное состояние...

Спустя 5 минут, 4 секунды (7.10.2010 - 21:34) arvitaly написал(а):
Цитата
да, действительно, совсем забыл про 200... Но это не единственный нормальный ответ;) 30x - признак того, что страница находится под другим реальным uri ... Совершенно нормальное состояние...


Да я и не писал, что проверять только по нему нужно, все вообще зависит от задачи.

К примеру нужно узнать сможет ли человек в браузере посмотреть этот сайт, тогда если ответ 301,302 нужно пройти по Location и проверить работает ли редирект, ну и других случаев мильон
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.