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


Автор: malice_ 10.7.2007, 10:57
Код

$r = curl_init();  
   curl_setopt($r, CURLOPT_NOPROGRESS, 0);  
   curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);  
   curl_setopt($r, CURLOPT_URL, "http://informer.gismeteo.ru/xml/26063_1.xml");  

   $res = curl_exec($r);  
   return $res;  


Call to undefined function: curl_init() 


через file_get_contents(): 

PHP Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: gethostbyname failed in c:\...

что необходимо прописать в ini php 4.3.0?  

Автор: Ashen 10.7.2007, 12:12
Для начала вызываем phpinfo() и смотрим наличие курла вообще. А по поводу file_get_contents() - говорит что не может найти хост.

Автор: mishaSL 10.7.2007, 12:46
Воспользуйтесь сокетами:
Код

<?php
function getUrlContents($url)
{
   $url_parsed = parse_url($url);
   $host = $url_parsed["host"];
   if ($url == '' || $host == '') {
       return false;
   }
   $port = ($url_parsed["port"] == 0 ? 80 : $url_parsed["port"]);
   $path = (empty($url_parsed["path"]) ? '/' : $url_parsed["path"]);
   $path.= (!empty($url_parsed["query"]) ? '?'.$url_parsed["query"] : '');
   $out = "GET $path HTTP/1.0\r\nHost: $host\r\nConnection: Close\r\n\r\n";
   $fp = fsockopen($host, $port, $errno, $errstr, 30);
   fwrite($fp, $out);
   $headers = '';
   $content = '';
   $buf = '';
   $isBody = false;
   while (!feof($fp)) {
        $buf = fgets($fp, 1024);
        if ($isBody) {
            $content .= $buf;
        } else {
            $headers .= $buf;
        }
        if ($buf == "\r\n" ) {
            $isBody = true;
        }
   }
   fclose($fp);
   return array('headers'=>$headers,'body'=>$content);
}
$s = getUrlContents('http://ru2.php.net/manual-lookup.php?pattern=fsock');
print '<h3>Заголовки:</h3><textarea rows="10" cols="50">'.$s['headers'].'</textarea>';
print '<h3>Тело:</h3><textarea rows="50" cols="50">'.$s['body'].'</textarea>';
?>

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