Heim  >  Artikel  >  Backend-Entwicklung  >  PHP CURL 多线程操作代码实例_PHP教程

PHP CURL 多线程操作代码实例_PHP教程

WBOY
WBOYOriginal
2016-07-13 09:53:46789Durchsuche

PHP CURL 多线程操作代码实例

   这篇文章主要介绍了PHP CURL 多线程操作代码实例,本文直接给出实现代码,需要的朋友可以参考下

  使用方法:

  ?

1

2

3

$urls = array("http://baidu.com", "http://21andy.com", "http://google.com");

$mp = new MultiHttpRequest($urls);

$mp->start();

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

/*

* Curl 多线程类

* 使用方法:

* ========================

$urls = array("http://baidu.com", "http://dzone.com", "http://google.com");

$mp = new MultiHttpRequest($urls);

$mp->start();

* ========================

*/

class MultiHttpRequest {

public $urls = array();

public $curlopt_header = 1;

public $method = "GET";

 

function __construct($urls = false) {

$this->urls = $urls;

}

 

function set_urls($urls) {

$this->urls = $urls;

return $this;

}

 

function is_return_header($b) {

$this->curlopt_header = $b;

return $this;

}

 

function set_method($m) {

$this->medthod = strtoupper($m);

return $this;

}

 

function start() {

if(!is_array($this->urls) or count($this->urls) == 0){

return false;

}

$curl = $text = array();

$handle = curl_multi_init();

foreach($this->urls as $k=>$v){

$curl[$k] = $this->add_handle($handle, $v);

}

 

$this->exec_handle($handle);

foreach($this->urls as $k=>$v){

curl_multi_getcontent($curl[$k]);

echo $curl[$k]."\n";

//$text[$k] = curl_multi_getcontent($curl[$k]);

//echo $text[$k], "\n\n";

curl_multi_remove_handle($handle, $curl[$k]);

}

curl_multi_close($handle);

}

 

private function add_handle($handle, $url) {

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_HEADER, $this->curlopt_header);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_multi_add_handle($handle, $curl);

return $curl;

}

 

private function exec_handle($handle) {

$flag = null;

do {

curl_multi_exec($handle, $flag);

} while ($flag > 0);

}

}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1000087.htmlTechArticlePHP CURL 多线程操作代码实例 这篇文章主要介绍了PHP CURL 多线程操作代码实例,本文直接给出实现代码,需要的朋友可以参考下 使用方法: ?...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn