Rumah  >  Artikel  >  pembangunan bahagian belakang  >  几种php访问url的方法

几种php访问url的方法

小云云
小云云asal
2018-03-20 10:07:1612112semak imbas

本文主要和大家分享几种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);     
 }

相关推荐:

php循环访问url写法问题

php 乱码转码 触发访问url的方法

Oracle的数据库访问Url: oci 和 thin 的区别

Atas ialah kandungan terperinci 几种php访问url的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:php冒泡排序基础讲解Artikel seterusnya:phar扩展来节省空间 的方法