PHP 访问URL的四种方式

1、fopen方式 
//访问指定URL函数
function access_url($url) 
{        if($url=='') return false;       
$fp = fopen($url, 'r') or exit('Open url faild!');        
if($fp){       while(!feof($fp)) {           
 $file .= fgets($fp) . "";       }       
 fclose($fp);        }      
 return $file;   }

2、file_get_contents方式 (打开远程文件的时候会造成CPU飙升。file_get_contents其实也可以post) 
//以post方式获取url
$data = array ('foo' => 'bar');
$data = http_build_query($data);
$opts['http'] = array (
  'method' => 'POST',
  'header'=> "Content-type:application/x-www-form-urlencodedrn".
  "Content-Length: " . strlen($data) . "rn",
  'content' => $data
);
$context = stream_context_create($opts);
$html = file_get_contents('http://localhost/test.html', false, $context);
echo $html;

3、curl方式
function curl_file_get_contents($durl){  
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, $durl);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回    
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回    
    $data = curl_exec($ch);  
    curl_close($ch);  
    return $data;  
}

4、fsockopen方式(只能获取网站主页信息,其他页面不可以)
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);     
(!$fp) {     
   echo "$errstr ($errno)<br />\n";     
}else {     
   $out="GET / HTTP/1.1\r\n";     
   $out.="Host: www.example.com\r\n";     
   $out.="Connection: Close\r\n\r\n";     
   fwrite($fp, $out);     
   while (!feof($fp)) {     
       echo fgets($fp, 128);     
   }  
   fclose($fp);     
}

猜你喜欢

转载自blog.csdn.net/newfarhui/article/details/81448238