日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

php curl批量打开网址(curl_multi类)的实现代码(thinkphp)

發布時間:2023/12/15 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 php curl批量打开网址(curl_multi类)的实现代码(thinkphp) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  1. <?php
  2. /*
  3. * curl_multi 經測試,大于四個網址時要比Foreach循環快..
  4. * by wc1217
  5. * edit:bbs.it-home.org
  6. */
  7. class curl_multi{
  8. //Curl句柄
  9. //private $curl_handle = null;
  10. //網址
  11. private $url_list = array();
  12. //參數
  13. private $curl_setopt = array(
  14. 'CURLOPT_RETURNTRANSFER' => 1, //結果返回給變量
  15. 'CURLOPT_HEADER' => 0, //要HTTP頭不?
  16. 'CURLOPT_NOBODY' => 0, //不要內容?
  17. 'CURLOPT_FOLLOWLOCATION' => 0, //自動跟蹤
  18. 'CURLOPT_TIMEOUT' => 6//超時(s)
  19. );
  20. function __construct($seconds = 30){
  21. set_time_limit($seconds);
  22. }
  23. /*
  24. * 設置網址
  25. * @list 數組
  26. */
  27. public function setUrlList($list = array()){
  28. $this->url_list = $list;
  29. }
  30. /*
  31. * 設置參數
  32. * @cutPot array
  33. */
  34. public function setOpt($cutPot){
  35. $this->curl_setopt = $cutPot + $this->curl_setopt;
  36. }
  37. /*
  38. * 執行
  39. * @return array
  40. */
  41. public function exec(){
  42. $mh = curl_multi_init();
  43. foreach($this->url_list as $i => $url){
  44. $conn[$i] = curl_init($url);
  45. foreach($this->curl_setopt as $key => $val){
  46. curl_setopt($conn[$i], preg_replace('/(CURLOPT_\w{1,})/ie', '$0', $key), $val);
  47. }
  48. curl_multi_add_handle($mh, $conn[$i]);
  49. }
  50. $active = false;
  51. do{
  52. $mrc = curl_multi_exec($mh, $active);
  53. }while($mrc == CURLM_CALL_MULTI_PERFORM);
  54. while($active and $mrc == CURLM_OK){
  55. if(curl_multi_select($mh) != -1){
  56. do{
  57. $mrc = curl_multi_exec($mh, $active);
  58. }while($mrc == CURLM_CALL_MULTI_PERFORM);
  59. }
  60. }
  61. $res = array();
  62. foreach($this->url_list as $i => $url){
  63. $res[$i] = curl_multi_getcontent($conn[$i]);
  64. curl_close($conn[$i]);
  65. curl_multi_remove_handle($mh, $conn[$i]); //用完馬上釋放資源
  66. }
  67. curl_multi_close($mh);
  68. return $res;
  69. }
  70. }
  71. ?>

復制代碼

總結

以上是生活随笔為你收集整理的php curl批量打开网址(curl_multi类)的实现代码(thinkphp)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。