使用 PHP 和 cURL 获取 URLs
Freigeben: 2016-07-25 09:08:38
Original
1087 Leute haben es durchsucht
http://css.dzone.com/articles/retrieving-urls-parallel-curl
- class Footo_Content_Retrieve_HTTP_CURLParallel
- {
- /**
- * Fetch a collection of URLs in parallell using cURL. The results are
- * returned as an associative array, with the URLs as the key and the
- * content of the URLs as the value.
- *
- * @param array $addresses An array of URLs to fetch.
- * @return array The content of each URL that we've been asked to fetch.
- **/
- public function retrieve($addresses)
- {
- $multiHandle = curl_multi_init();
- $handles = array();
- $results = array();
-
- foreach($addresses as $url)
- {
- $handle = curl_init($url);
- $handles[$url] = $handle;
-
- curl_setopt_array($handle, array(
- CURLOPT_HEADER => false,
- CURLOPT_RETURNTRANSFER => true,
- ));
-
- curl_multi_add_handle($multiHandle, $handle);
- }
-
- //execute the handles
- $result = CURLM_CALL_MULTI_PERFORM;
- $running = false;
-
- // set up and make any requests..
- while ($result == CURLM_CALL_MULTI_PERFORM)
- {
- $result = curl_multi_exec($multiHandle, $running);
- }
-
- // wait until data arrives on all sockets
- while($running && ($result == CURLM_OK))
- {
- if (curl_multi_select($multiHandle) > -1)
- {
- $result = CURLM_CALL_MULTI_PERFORM;
-
- // while we need to process sockets
- while ($result == CURLM_CALL_MULTI_PERFORM)
- {
- $result = curl_multi_exec($multiHandle, $running);
- }
- }
- }
-
- // clean up
- foreach($handles as $url => $handle)
- {
- $results[$url] = curl_multi_getcontent($handle);
-
- curl_multi_remove_handle($multiHandle, $handle);
- curl_close($handle);
- }
-
- curl_multi_close($multiHandle);
-
- return $results;
- }
- }
复制代码
|
Erklärung dieser Website
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
Neueste Artikel des Autors
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31