Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: GET запрос
Форумы портала PHP.SU » » HTTP и PHP » GET запрос

Страниц (1): [1]
 

1. apaex - 20 Июля, 2011 - 13:17:25 - перейти к сообщению
Коллеги, помогите разобраться, еще одна странность, не могу понять ничего.
Отправляю стандартный IE9 GET запрос скриптом


PHP:
скопировать код в буфер обмена
  1.         $host = 'www.mail.ru';
  2.  
  3.         $result = tcp_send($host,    
  4.                     array(
  5.                             "GET / HTTP/1.1\r\n",
  6.                             'Accept: text/html, application/xhtml+xml, */*'."\r\n",
  7.                             'Accept-Language: ru-RU'."\r\n",
  8.                             'User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)'."\r\n",
  9.                             'Accept-Encoding: gzip, deflate'."\r\n",
  10.                             'Connection: Keep-Alive'."\r\n",
  11.                              'Host: '.$host."\r\n",
  12.                             "\r\n",
  13.                          )
  14.                 );
  15.  
  16.     echo "ok\n";




Запрос возвращает страницу за миллисекунды.

Меняю хост на $host = 'www.russianpost.ru';

Страница начинает возвращаться несколько минут. И, казалось бы, хост тупит — но браузером www[dot]russianpost[dot]ru открывается мгновенно. Вообще тупик. Где искать?


Процедура формирования запроса:

PHP:
скопировать код в буфер обмена
  1.  
  2.     function tcp_send($board, $data) {
  3.  
  4.         $answer = "";
  5.     $errno = 0;
  6.     $errstr = "";
  7.  
  8.         // Get IP
  9.         $ip = gethostbyname($board);
  10.         // Open socket
  11.         $fp = fsockopen($ip, 80, $errno, $errstr, 30);
  12.            
  13.         if ($fp )
  14.         {
  15.             // Set HTTP header
  16.             foreach( $data as $row )
  17.             {
  18.                 fputs($fp, $row);
  19.             }
  20.  
  21.             // Get an answer
  22.             while( !feof($fp) )
  23.             {
  24.                 $answer .= fread($fp, 512);
  25.             }
  26.  
  27.             fclose($fp);
  28.  
  29.             return $answer;
  30.         }
  31.         else
  32.             return $errstr;
  33.     }
  34.  
2. apaex - 21 Июля, 2011 - 08:55:10 - перейти к сообщению
Вопрос решён.
http://rsdn[dot]ru/forum/web/4350422[dot]1[dot]aspx

 

Powered by ExBB FM 1.0 RC1