| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Как проверить, существует ли сайт? |
| Автор: Frikazoid 2.10.2002, 01:37 |
| Привет всем! Как проверить, существует ли сайт и прочитать заглавную страницу? Есессенно с помошью скрипта! Спасибо! |
| Автор: Wowa 2.10.2002, 03:39 |
| Один из вариантов: <?php include('урл'); ?> Но не на всех хостингах может работать |
| Автор: Devorior 24.10.2002, 23:38 |
| в качестве второго варианта: посчитай длину урла, т.е. размер html-страницы..если -1, то не существует ;) |
| Автор: MuToGeN 25.10.2002, 06:07 |
| fopen() и fread(), но тоже не везде работает |
| Автор: MuToGeN 25.10.2002, 06:10 | ||
а, пардон, как связаны между собой длина урла и размер того что по этому урлу находится? |
| Автор: Pawel 25.10.2002, 06:17 |
| fopen работает не всегда. Бывает, что сервер проверяет заголовки запроса. И если лезет не браузер, то ничего не дает. Тогда лучше использовать fsockopen(). |
| Автор: MuToGeN 25.10.2002, 06:36 | ||
1) покажи мне хостинг (хоть платный, но кроме тарифов по 50 уе/месяц), где можно юзать сокетные PHPшные ф-ии 2) любой нормальный сервер не будет проверять заголовки типа USER-AGENT т.к. тогда по сайту можно будет лазить только с браузера поддерживающего HTTP/1.1 3) уж если не пашет fopen(), file() и сокеты (которые любой нормальный админ хостинга отключит), то никак не сделаешь |
| Автор: Devorior 29.10.2002, 01:12 |
| пардон..может криво написал...не длина урла, а длина того, что по нему находится |
| Автор: Frikazoid 3.11.2002, 04:47 |
| Прикиньте! Я не был в этой теме и не отвечал, только по тому, что мне не приходили уведомления по мылу. От других тем приходили, а от этой нет. Я думал, что не отвечают мне вообще. А так я проверю, но думаю, что не получится. Я проверял работу у себя на локалхосте(таким способом) и не работало. |
| Автор: MuToGeN 3.11.2002, 13:12 | ||||
|
| Автор: buddy 4.11.2002, 08:00 |
| чуваки, а разве это через whois не делается? |
| Автор: MuToGeN 5.11.2002, 05:05 | ||
кстати да... только надо еще глав. страницу получить |
| Автор: Devorior 10.11.2002, 18:18 |
| вот какой вариант еще есть: function check_url($url) { if (eregi( '^http://', $url)) { $urlArray = parse_url($url); if (!$urlArray[port]) $urlArray[port] = '80'; if (!$urlArray[path]) $urlArray[path] = '/'; $sock = fsockopen($urlArray[host], $urlArray[port], &$errnum, &$errstr); if (!$sock) $res = 'not valid'; else { $dump .= "GET $urlArray[path] HTTP/1.1\r\n"; $dump .= "Host: $urlArray[host]\r\nConnection: close\r\n"; $dump .= "Connection: close\r\n\r\n"; fputs($sock, $dump); while ($str = fgets($sock, 1024)) { if (eregi("^http/[0-9]+.[0-9]+ ([0-9]{3}) [a-z ]*", $str)) $res[code] = trim(eregi_replace('^http/[0-9]+.[0-9]+([0-9]{3})[a-z ]*', "\\1", $str)); if (eregi("^Content-Type: ", $str)) $res[contentType] = trim(eregi_replace("^Content-Type: ", "", $str)); } fclose($sock); flush(); return $res[code]; } } else $res = "N/A"; return $res; } print check_url("http://localhost/gbook/index.php"); |