方法一:

$re = file_get_contents($url);
print_r($re);

方法二:

$ch = curl_init("http://www.jb51.net/") ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ;
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ;
$output = curl_exec($ch) ;
$fh = fopen("out.html", 'w') ;
fwrite($fh, $output) ;
fclose($fh) ;

方法三:

function dfopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE    , $ip = '', $timeout = 15, $block = TRUE, $encodetype  = 'URLENCODE') {
$return = '';
$matches = parse_url($url);
$host = $matches['host'];
$path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/';
$port = !empty($matches['port']) ? $matches['port'] : 80; if($post) {
$out = "POST $path HTTP/1.0\r\n";
$out .= "Accept: */*\r\n";
$out .= "Accept-Language: zh-cn\r\n";
$boundary = $encodetype == 'URLENCODE' ? '' : ';'.substr($post, 0, trim(strpos($post, "\n")));
$out .= $encodetype == 'URLENCODE' ? "Content-Type: application/x-www-form-urlencoded\r\n" : "Content-Type: multipart/form-data$boundary\r\n";
$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
$out .= "Host: $host\r\n";
$out .= 'Content-Length: '.strlen($post)."\r\n";
$out .= "Connection: Close\r\n";
$out .= "Cache-Control: no-cache\r\n";
$out .= "Cookie: $cookie\r\n\r\n";
$out .= $post;
} else {
$out = "GET $path HTTP/1.0\r\n";
$out .= "Accept: */*\r\n";
$out .= "Accept-Language: zh-cn\r\n";
$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
$out .= "Host: $host\r\n";
$out .= "Connection: Close\r\n";
$out .= "Cookie: $cookie\r\n\r\n";
}
$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
if(!$fp) {
return '';
} else {
stream_set_blocking($fp, $block);
stream_set_timeout($fp, $timeout);
@fwrite($fp, $out);
$status = stream_get_meta_data($fp);
if(!$status['timed_out']) {
while (!feof($fp)) {
if(($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")){
break;
}
}
$stop = false;
while(!feof($fp) && !$stop) {
$data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit));
$return .= $data;
if($limit) {
$limit -= strlen($data);
$stop = $limit <= 0;
}
}
}
@fclose($fp);
return $return;
}
}

================================================================下面是我用到的,可能和上面有重复,主要是https的问题

php中curl函数可以实现get与post操作,我们经常使用它来做一些人为模仿操作了,下面我来简单的介绍post与get的例子。
 

get 方法

 代码如下 复制代码
$url = "http://www.111cn.net /index.php?a=b&c=d&e=f&g=" . urlencode('王璐个人博客');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    // 要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_HEADER, 0); // 不要http header 加快效率
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$output = curl_exec($ch);
curl_close($ch);
var_dump($output);

post 方法

 代码如下 复制代码
$url = "http://www.111cn.net/ index.php";
$params = "a=b&c=d&e=f&g=" . urlencode('王璐个人博客');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    // 要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_HEADER, 0); // 不要http header 加快效率
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
 
curl_setopt($ch, CURLOPT_POST, 1);    // post 提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
 
$output = curl_exec($ch);
curl_close($ch);
var_dump($output);

当请求https的数据时,会要求证书,这时候,加上下面这两个参数,规避ssl的证书检查

 代码如下 复制代码

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    // https请求 不验证证书和hosts
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

最新文章

  1. 本机搭建外网web服务器
  2. Fragment初步了解
  3. 应用型GIS 地理信息系统设计内容和方法
  4. Web前端的35个jQuery小技巧
  5. 算法导论学习-binary search tree
  6. 活动倒计时代码(精确到毫秒)jquery插件
  7. UVa11488-Hyper Prefix Sets(trie树)
  8. 【Android 应用开发】Android 开发 之 JNI入门 - NDK从入门到精通
  9. JS获取父、兄、子节点
  10. Java进阶(一)Java内存解析
  11. Elasticsearch笔记七之setting,mapping,分片查询方式
  12. k8s数据管理(八)--技术流ken
  13. JAVA String中文乱码
  14. POJ 2001 Shortest Prefixes 【Trie树】
  15. poj3087 Shuffle&#39;m Up(模拟)
  16. sscanf,sprintf 通过字符串与其它类型进行方便快捷的输入和输出
  17. PowerBuilder编程新思维3:适配(三层架构与GraphQL)
  18. LS下怎样最大限度的提高Domino下Web应用的速度
  19. C# Log4Net level优先级别
  20. hdu 5500 Reorder the Books

热门文章

  1. HTTP协议建立连接、通讯与关闭连接全过程
  2. idea添加自动编译
  3. 洛谷 P2978 [USACO10JAN]下午茶时间Tea Time
  4. 背景剪除和OpenCV中的实现
  5. percona-toolkit的安装及简单介绍
  6. Android学习笔记之Bitmap位图虽触摸点移动
  7. 报错 关于python的x和y不等长
  8. GO语言学习(十九)Go 错误处理
  9. 51Nod——N1082 与7无关的数
  10. cocos2d-x中六种持续性动作