Показать сообщение отдельно

  #3  
Старый 14.03.2009, 16:14
Shadow_p1raT
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
С нами: 9564806

Репутация: 267
По умолчанию

Написал альтернативную функцию для работы с вебом.
Использует file_get_contents()
PHP код:
function sock_do($action,$method,$header false,$params false,$proxy false,$cookie false,$referer false)
{
   
$out    = array('http' => array());
   
$method strtoupper($method);
   if(
$method == 'GET') {
      
$action .= '?'.$params;
      
$out['http']['method'] = 'GET';
      
   } elseif(
$method == 'POST') {
      
$out['http']['method']  = 'POST';
      
$out['http']['header']  = "Content-type: application/x-www-form-urlencoded\r\n".
                                
"Content-length: ".strlen($params)."\r\n";
      
$out['http']['content'] = $params;                        
   } else {
      
      die(
'Йа криветко');
   }
   if(
$proxy) {
      
$out['http']['proxy'] = 'tcp://'.$proxy;
   }
   if(
$cookie) {
      
$out['http']['header'] .= 'Cookie: '.$cookie."\r\n";
   }
   if(
$referer) {
      
$out['http']['header'] .= 'Referer: '.$referer."\r\n";
   }
   
$out['http']['header'] .= "Connection: close\r\n";
   
   
$content stream_context_create($out);
   
$result = @file_get_contents($action,false,$content);
   
$res = array();
   
$res = array($result);
   if(
$header) {
      
$res[] = implode("\r\n",$http_response_header);
   }
   return 
$res//Возвращаем ответ + заголовки                    
}
# [пример использования]
$send sock_do('http://microsoft.com/private/index.php','GET',1,'login=bill&password=antichat');# аналагично с POST
print_R($send);# В первом кдюче ответ сервера во втором заголовки 
Спросите для чего @ перед file_get_contens() ?
Если вы обратитесь к серверу и он вас хидером перенаправит ну другой хост то file_get_contents вернёт ошибку:-)В таком случае в переменной $header должно быть true.Далее парсим заголовки)
 
Ответить с цитированием