php curl的使用

Posted 冷暖自知一抹茶ck

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php curl的使用相关的知识,希望对你有一定的参考价值。

我们来采集一个页面,通常情况下,我们会使用file_get_contents()函数来获取:

 1 <?php
 2  
 3 $str = file_get_contents(‘http://www.baidu.com‘);
 4  
 5 //或者是:
 6  
 7 $str = file("http://www.baidu.com");
 8  
 9 //或者是:
10  
11 readfile("http://www.baidu.com");
12  
13 ?>

这样我们会发现,我们没有办法有效地进行错误处理,更重要的是我们没有办法完成一些高难度的任务:
如:处理cookies,验证,表单提交,文件上传等等。这时候我们需要学习一下curl,来帮助自己实现这些复杂的功能。

通过curl_setopt()函数可以方便快捷的抓取网页,curl_setopt 是php的一个扩展库。使用条件:需要在php.ini 中配置开启。(PHP 4 >= 4.0.2)

//取消下面的注释

extension=php_curl.dll

 GET数据案例:

//1.初始化,创建一个新cURL资源
    $ch = curl_init();

//2.设置URL和相应的选项
    curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com"); //需要获取的URL地址
    //curl_setopt($ch, CURLOPT_HEADER, 1);  //启用时会将头文件的信息作为数据流输出
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
    curl_setopt($ch, CURLOPT_TIMEOUT, 500);
//3.抓取URL并把它传递给浏览器
    $data =curl_exec($ch);  
    
 //4.关闭cURL资源,并且释放系统资源
    curl_close($ch);
    var_dump($data);

 POST数据案例:

   $url = "http://localhost/demo.php";
  $post_data = array ("username" => "bob","key" => "12345");
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  // post数据
  curl_setopt($ch, CURLOPT_POST, 1);
  // post的变量
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  $data = curl_exec($ch);
  curl_close($ch);
  //打印获得的数据
  print_r($data);

 

以上是关于php curl的使用的主要内容,如果未能解决你的问题,请参考以下文章

postman 自动生成 curl 代码片段

转:PHP中的使用curl发送请求(GET请求和POST请求)

CentOS yum 命令出现 [Errno 14] curl#6 - &quot;Couldn&#39;t resolve host ...&quot; 的解决方法(代码片段

php: 使用 cURL 获取 html 源代码

使用 CURL PHP 执行 javascript 后获取 HTML 代码

有啥方法可以让 curl 连接并让我在输入时输入和发送身体片段?