PHP的http请求处理类

php中文网
发布: 2016-07-25 08:42:03
原创
1290人浏览过

[php]代码

PatentPal专利申请写作
PatentPal专利申请写作

AI软件来为专利申请自动生成内容

PatentPal专利申请写作 13
查看详情 PatentPal专利申请写作
  1. /**
  2. * http请求处理类(基于CURL进行封装)
  3. *
  4. * @author Xiwei Ye
  5. * @version $Id$
  6. */
  7. class cls_http_request
  8. {
  9. /**
  10. * get方式请求(curl)
  11. *
  12. * @param string $url 请求的url
  13. * @param integer $timeout 超时时间(s)
  14. * @return string(请求成功) | false(请求失败)
  15. */
  16. public static function curl_get($url, $timeout = 1)
  17. {
  18. $ch = curl_init();
  19. curl_setopt($ch, CURLOPT_URL, $url);
  20. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  21. curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  22. $result = curl_exec($ch);
  23. curl_close($ch);
  24. if (is_string($result) && strlen($result))
  25. {
  26. return $result;
  27. }
  28. else
  29. {
  30. return false;
  31. }
  32. }
  33. /**
  34. * post方式请求
  35. *
  36. * @param string $url 请求的url
  37. * @param array $data 请求的参数数组(关联数组)
  38. * @param integer $timeout 超时时间(s)
  39. * @return string(请求成功) | false(请求失败)
  40. */
  41. public static function curl_post($url, $data, $timeout = 2)
  42. {
  43. $ch = curl_init();
  44. curl_setopt($ch, CURLOPT_URL, $url);
  45. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  46. curl_setopt($ch, CURLOPT_POST, 1);
  47. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  48. curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
  49. curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  50. $result = curl_exec($ch);
  51. curl_close($ch);
  52. if (is_string($result) && strlen($result))
  53. {
  54. return $result;
  55. }
  56. else
  57. {
  58. return false;
  59. }
  60. }
  61. /**
  62. * 多个url并行请求
  63. *
  64. * @param array $urls url数组
  65. * @param integer $timeout 超时时间(s)
  66. * @return array $res 返回结果
  67. */
  68. public static function curl_get_urls($urls, $timeout = 1)
  69. {
  70. $mh=curl_multi_init();
  71. $chs=array();
  72. foreach($urls as $url)
  73. {
  74. $ch=curl_init();
  75. curl_setopt($ch,CURLOPT_URL,$url);
  76. curl_setopt($ch,CURLOPT_HEADER,false);
  77. curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
  78. curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
  79. curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
  80. curl_multi_add_handle($mh,$ch);
  81. $chs[]=$ch;
  82. }
  83. $active=null;
  84. do {
  85. $mrc=curl_multi_exec($mh,$active);
  86. }while($mrc == CURLM_CALL_MULTI_PERFORM);
  87. while($active && $mrc == CURLM_OK)
  88. {
  89. if(curl_multi_select($mh) != -1)
  90. {
  91. do{
  92. $mrc=curl_multi_exec($mh,$active);
  93. }while($mrc == CURLM_CALL_MULTI_PERFORM);
  94. }
  95. }
  96. $res=array();
  97. foreach($chs as $ch)
  98. {
  99. $res[]=curl_multi_getcontent($ch);
  100. curl_multi_remove_handle($mh,$ch);
  101. }
  102. curl_multi_close($mh);
  103. return $res;
  104. }
  105. }
复制代码
PHP, http


PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号