file_get_contents,fopen,curl 获取远程页面

来源:互联网 发布:淘宝自粘墙纸有甲醛吗 编辑:程序博客网 时间:2024/06/17 11:50

curl支持很多协议,有FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE以及LDAP,也就是说,它能做到很多file_get_content做不到的事情。curl在PHP可以实现远程获取和采集内容;实现php网页版的FTP上传下载;实现模拟登陆;实现接口对接(API),数据传输;实现模拟Cookie;下载文件断点续传等等,功能十分强大。

1、file_get_contents获取远程页面

1.1get 形式

      $url ="www.baidu.com?num1=num1&num2=num2";

$result = file_get_contents($url);

1.2 post 形式

$url ="www.baidu.com";

$data = array (
'num1' => 'num1',
'num2' => 'num2',
);
$query_data = http_build_query($data);
$opts = array (
'http' => array (
'method' => 'POST',
'header'=> "Content-type: application/x-www-form-urlencodedrn" .
"Content-Length: " . strlen($query_data) . "rn",
'content' => $query_data
)
);
$context = stream_context_create($opts);
$result = file_get_contents($url, false, $context);

2、fopen获取远程页面, get方式

$url ="www.baidu.com";
  $fp = fopen($url, 'r');
  stream_get_meta_data($fp);
  $result = '';
  while(!feof($fp)) {
  $result .= fgets($fp, 1024);
  }
fclose($fp);

3、curl获取远程页面

$url ="www.baidu.com";

if(function_exists('curl_init')==1){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt ($curl, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
   curl_setopt ($curl, CURLOPT_TIMEOUT,5);


原创粉丝点击