curl.class.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * CURL类
  4. *
  5. * @createtime 2018/03/01
  6. * @author 空竹
  7. * @copyright 芝麻开发(http://www.zhimawork.com)
  8. */
  9. class Curl {
  10. /**
  11. * post()
  12. *
  13. * @param mixed $url
  14. * @param mixed $postData 格式形如:id=3&name=tester //// TODO: wait 补充cookie情况和文件提交情况
  15. * @param bool $is_https
  16. * @return
  17. */
  18. static public function post($url, $postData, $is_https = false){
  19. $ch = curl_init();
  20. curl_setopt($ch, CURLOPT_TIMEOUT, 30);//设置超时
  21. curl_setopt($ch, CURLOPT_HEADER, 0); //启用时会将头文件的信息作为数据流输出
  22. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//要求结果为字符串且输出到屏幕上
  23. if($is_https){
  24. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  25. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  26. }
  27. curl_setopt($ch, CURLOPT_URL, $url);
  28. curl_setopt($ch, CURLOPT_POST, 1);
  29. curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
  30. $data = curl_exec($ch);
  31. if($data){
  32. curl_close($ch);
  33. return $data;
  34. } else {
  35. $error = curl_errno($ch);
  36. curl_close($ch);
  37. throw new Exception("Curl出错,错误码:$error。");
  38. }
  39. }
  40. /**
  41. * get()
  42. *
  43. * @param mixed $url
  44. * @return
  45. */
  46. static public function get($url, $is_https = false){
  47. $ch = curl_init();
  48. curl_setopt($ch, CURLOPT_URL, $url);
  49. curl_setopt($ch, CURLOPT_TIMEOUT, 30);//设置超时
  50. curl_setopt($ch, CURLOPT_HEADER, 0); //启用时会将头文件的信息作为数据流输出
  51. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
  52. if($is_https){
  53. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  54. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  55. }
  56. $data = curl_exec($ch);
  57. if($data){
  58. curl_close($ch);
  59. return $data;
  60. } else {
  61. $error = curl_errno($ch);
  62. curl_close($ch);
  63. throw new Exception("Curl出错,错误码:$error。");
  64. }
  65. }
  66. }
  67. ?>