This article mainly shares with you several methods of accessing URLs in PHP. There are four methods in total. I hope it can help you.
1. fopen method
//访问指定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 method (opening remote files will cause the CPU to surge. File_get_contents can actually 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 method
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 method (only the homepage information of the website can be obtained, not other pages)
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30); (!$fp) { echo "$errstr ($errno)
\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); }
Related recommendations:
php loop access url writing problem
php Method for garbled transcoding to trigger access to URL
Oracle’s database access Url: The difference between oci and thin
The above is the detailed content of Several ways to access url in php. For more information, please follow other related articles on the PHP Chinese website!