封装PHP的curl请求支持POST和GET

代码:

  1. <?php
  2. function lwx_curl($url, $paras = [])
  3. {
  4. $ch = curl_init();
  5. curl_setopt($ch, CURLOPT_URL, $url);
  6. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  7. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  8. if (isset($paras['Header'])) {
  9. $Header = $paras['Header'];
  10. } else {
  11. $Header[] = "Accept:*/*";
  12. $Header[] = "Accept-Encoding:gzip,deflate,sdch";
  13. $Header[] = "Accept-Language:zh-CN,zh;q=0.8";
  14. $Header[] = "Connection:close";
  15. }
  16. curl_setopt($ch, CURLOPT_HTTPHEADER, $Header);
  17. if (isset($paras['ctime'])) { // 连接超时
  18. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $paras['ctime']);
  19. } else {
  20. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  21. }
  22. if (isset($paras['rtime'])) { // 读取超时
  23. curl_setopt($ch, CURLOPT_TIMEOUT, $paras['rtime']);
  24. }
  25. if (isset($paras['post'])) {
  26. curl_setopt($ch, CURLOPT_POST, 1);
  27. curl_setopt($ch, CURLOPT_POSTFIELDS, $paras['post']);
  28. }
  29. if (isset($paras['header'])) {
  30. curl_setopt($ch, CURLOPT_HEADER, true);
  31. }
  32. if (isset($paras['cookie'])) {
  33. curl_setopt($ch, CURLOPT_COOKIE, $paras['cookie']);
  34. }
  35. if (isset($paras['refer'])) {
  36. if ($paras['refer'] == 1) {
  37. curl_setopt($ch, CURLOPT_REFERER, 'http://www.baidu.com');
  38. } else {
  39. curl_setopt($ch, CURLOPT_REFERER, $paras['refer']);
  40. }
  41. }
  42. if (isset($paras['ua'])) {
  43. curl_setopt($ch, CURLOPT_USERAGENT, $paras['ua']);
  44. } else {
  45. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36");
  46. }
  47. if (isset($paras['nobody'])) {
  48. curl_setopt($ch, CURLOPT_NOBODY, 1);
  49. }
  50. curl_setopt($ch, CURLOPT_ENCODING, "gzip");
  51. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  52. if (isset($paras['GetCookie'])) {
  53. curl_setopt($ch, CURLOPT_HEADER, 1);
  54. $result = curl_exec($ch);
  55. preg_match_all("/Set-Cookie: (.*?);/m", $result, $matches);
  56. $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
  57. $header = substr($result, 0, $headerSize); //状态码
  58. $body = substr($result, $headerSize);
  59. $ret = [
  60. "Cookie" => $matches, "body" => $body, "header" => $header, 'code' => curl_getinfo($ch, CURLINFO_HTTP_CODE),
  61. ];
  62. curl_close($ch);
  63. return $ret;
  64. }
  65. $ret = curl_exec($ch);
  66. if (isset($paras['loadurl'])) {
  67. $Headers = curl_getinfo($ch);
  68. if (isset($Headers['redirect_url'])) {
  69. $ret = $Headers['redirect_url'];
  70. } else {
  71. $ret = false;
  72. }
  73. }
  74. curl_close($ch);
  75. return $ret;
  76. }

使用方法:

GET访问

  1. echo lwx_curl("https://vlwx.com?url=qq.com");

POST访问

  1. echo lwx_curl("https://vlwx.com/api.php",[
  2. 'post'=>[
  3. 'url'=>'qq.com'
  4. ]
  5. ]);

  1. echo lwx_curl("https://vlwx.com/api.php",[
  2. 'post'=>'url=qq.com'
  3. ]);

携带Cookie访问

  1. echo lwx_curl("https://vlwx.com/api.php?url=qq.com",[
  2. 'cookie'=>'cookie内容'
  3. ]);

模拟访问来源Refer

  1. echo lwx_curl("https://vlwx.com/api.php?url=qq.com",[
  2. 'refer'=>'https://api.oioweb.cn'
  3. ]);

模拟UseaAgent

  1. echo lwx_curl("https://vlwx.com/api.php?url=qq.com",[
  2. 'ua'=>'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
  3. ]);

文件上传

  1. echo lwx_curl("https://vlwx.com/api.php?url=qq.com",[
  2. 'post'=>[
  3. 'file'=>new CURLFile(realpath("Curl.jpg"))
  4. ]
  5. ]);

  1. echo lwx_curl("https://vlwx.com/api.php?url=qq.com",[
  2. 'post'=>new CURLFile(realpath("Curl.jpg"))
  3. ]);

获取301跳转地址

  1. echo lwx_curl("https://url.cn/s/RNHSoek",[
  2. 'loadurl'=>1
  3. ]);

查看返回Header信息

  1. echo lwx_curl("https://vlwx.com/api.php?url=qq.com",[
  2. 'header'=>1
  3. ]);

设置请求头信息

  1. echo lwx_curl("https://vlwx.com/api.php?url=qq.com",[
  2. 'Header'=>[
  3. 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
  4. accept-encoding: gzip, deflate, br
  5. accept-language: zh-CN,zh;q=0.9
  6. cache-control: max-age=0'
  7. ]
  8. ]);

获取POST以后返回的Header、Body、Cookie内容

  1. echo lwx_curl("https://vlwx.com/api.php?url=qq.com",[
  2. 'post'=>[
  3. 'user'=>123456,
  4. 'pwd'=>123
  5. ],
  6. 'GetCookie'=>1
  7. ]);

最后
还有其他的功能,自己研究吧!还是很强大的!

源码分享

腾讯微云网盘直链解析ID版 PHP源码

2020-9-9 23:04:17

源码分享

Dplayer播放器替换、删除ts文件

2020-10-7 19:40:25

0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
私信列表
搜索