Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Получение информации о сайте с использованием PHP


Автор: andryus 17.1.2011, 12:08
Как получить информацию о сайте следующего характера:
1. Мне нужен HTTP ответ сервера (или лучше сайта), т.е. задали УРЛ сайта и получили информацию, нужен HTTP ответ сервера, т.е. конкретно что выдаст сервер какой ответ (100,200,300,400,500). Есть функция get_headers, но она возвращает массив, а как из массива вытянуть информацию не могу сообразить, наверное с использованием preg_match но вот как построить код не пойму, мне при том нужно получить только 1 цифру (1,2,3,4,5) без продолжения (т.е. например 404,303 и т.п.)

Автор: patap 17.1.2011, 12:46
Код

  $server = 'www.domain.com';
  $fp = fsockopen($server, 80, $errno, $errstr, 30);
  $page = ''; // если надо

  $request = "GET /$page HTTP/1.1\r\n"; 
  $request .= "Host: $server\r\n"; 
  $request .= "Connection: Close\r\n\r\n";
  fwrite($fp, $request);
  
  $response = fgets($fp);
  
  preg_match('#\d{3}#', $response, $match);
  $code = $match[0];
  
  echo $code;


либо проще можно, через get_headers();
Код

  $headers = get_headers('http://google.com');
  preg_match('#\d{3}#', $headers[0], $match);
  echo $match[0];

Автор: andryus 17.1.2011, 16:21
А вот например сайт vyatkacompany.ru таким запросом почему то ничего не выдает

Автор: patap 17.1.2011, 17:48
ну, судя по всему он нигде не хостится, либо с DNS что-то не то

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)