PHP封装cURL工具类与应用示例

这篇文章主要介绍了PHP封装cURL工具类与应用,结合实例形式分析了php基于面向对象封装的curl请求、响应、参数设置等相关操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP封装cURL工具类,分享给大家供大家参考,具体如下:

CurlUtils工具类:

  1. <?php
  2. /**
  3. * cURL请求工具类
  4. */
  5. class CurlUtils {
  6. private $ch;//curl资源对象
  7. /**
  8. * 构造方法
  9. * @param string $url 请求的地址
  10. * @param int $responseHeader 是否需要响应头信息
  11. */
  12. public function __construct($url,$responseHeader = 0){
  13. $this->ch = curl_init($url);
  14. curl_setopt($this->ch,CURLOPT_RETURNTRANSFER,1);//设置以文件流的形式返回
  15. curl_setopt($this->ch,CURLOPT_HEADER,$responseHeader);//设置响应头信息是否返回
  16. }
  17. /**
  18. * 析构方法
  19. */
  20. public function __destruct(){
  21. $this->close();
  22. }
  23. /**
  24. * 添加请求头
  25. * @param array $value 请求头
  26. */
  27. public function addHeader($value){
  28. curl_setopt($this->ch, CURLOPT_HTTPHEADER, $value);
  29. }
  30. /**
  31. * 发送请求
  32. * @return string 返回的数据
  33. */
  34. private function exec(){
  35. return curl_exec($this->ch);
  36. }
  37. /**
  38. * 发送get请求
  39. * @return string 请求返回的数据
  40. */
  41. public function get(){
  42. return $this->exec();
  43. }
  44. /**
  45. * 发送post请求
  46. * @param arr/string $value 准备发送post的数据
  47. * @param boolean $https 是否为https请求
  48. * @return string 请求返回的数据
  49. */
  50. public function post($value,$https=true){
  51. if($https){
  52. curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  53. curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  54. }
  55. curl_setopt($this->ch,CURLOPT_POST,1);//设置post请求
  56. curl_setopt($this->ch,CURLOPT_POSTFIELDS,$value);
  57. return $this->exec();
  58. }
  59. /**
  60. * 关闭curl句柄
  61. */
  62. private function close(){
  63. curl_close($this->ch);
  64. }
  65. }

调用实例:

face++的人脸识别接口

  1. $curl = new CurlUtils("https://api-cn.faceplusplus.com/facepp/v3/detect");//创建curl对象
  2. $value = ['api_key'=>'4Y7GS2sAPGEl-BtQlNw5Iqtq5jGOn87z','api_secret'=>'oQnwwJhS2mcm4vflKvgm972up9sLN8zj','image_url'=>'http://avatar.csdn.net/9/7/5/1_baochao95.jpg','return_attributes'=>'gender,age,glass'];//准备post的值
  3. echo $curl->post($value);//发送请求