curl_multi_getcontent

(PHP 5, PHP 7)

curl_multi_getcontentВозвращает результат операции, если была установлена опция CURLOPT_RETURNTRANSFER

Описание

string curl_multi_getcontent ( resource $ch )

Если для определенного дескриптора была установлена опция CURLOPT_RETURNTRANSFER, то эта функция вернет содержимое этого cURL дескриптора в виде строки.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает содержимое cURL дескриптора, если была использована опция CURLOPT_RETURNTRANSFER.

Смотрите также

Коментарии

You can use curl_multi_getcontent() on a curl handle that was executed with curl_exec() (and not added to a multi handle).
However, this is not very useful because curl_multi_getcontent() will return the same as curl_exec() then.

<?php
 $ch 
curl_init('http://www.example.com/');
 
curl_setopt($chCURLOPT_RETURNTRANSFER1);
 
$a curl_exec($ch);
 
$b curl_multi_getcontent($ch);
 
var_dump($a === $b);
 
curl_close($ch);
?>
will return:

bool(true)
2013-09-10 23:51:38
http://php5.kiev.ua/manual/ru/function.curl-multi-getcontent.html
This seems to work as expected for me - allowing me to get the content from a curl_multi operation into variables :

(Thanks go to many other notes in related documentation (there is much copy/pasting) all I did was add the relevant line(s))

<?
    $aURLs 
= array("http://www.php.net","http://www.w3cschools.com"); // array of URLs
   
$mh curl_multi_init(); // init the curl Multi
   
   
$aCurlHandles = array(); // create an array for the individual curl handles

   
foreach ($aURLs as $id=>$url) { //add the handles for each url
       
$ch curl_setup($url,$socks5_proxy,$usernamepass);
       
$ch curl_init(); // init curl, and then setup your options
       
curl_setopt($chCURLOPT_URL$url);
       
curl_setopt($chCURLOPT_RETURNTRANSFER,1); // returns the result - very important
       
curl_setopt($chCURLOPT_HEADER0); // no headers in the output

       
$aCurlHandles[$url] = $ch;
       
curl_multi_add_handle($mh,$ch);
    }
   
   
$active null;
   
//execute the handles
   
do {
       
$mrc curl_multi_exec($mh$active);
    } 
    while (
$mrc == CURLM_CALL_MULTI_PERFORM);

    while (
$active && $mrc == CURLM_OK) {
        if (
curl_multi_select($mh) != -1) {
            do {
               
$mrc curl_multi_exec($mh$active);
            } while (
$mrc == CURLM_CALL_MULTI_PERFORM);
        }
    }
   
/* This is the relevant bit */
        // iterate through the handles and get your content
   
foreach ($aCurlHandles as $url=>$ch) {
       
$html curl_multi_getcontent($ch); // get the content
                // do what you want with the HTML
       
curl_multi_remove_handle($mh$ch); // remove the handle (assuming  you are done with it);
   
}
/* End of the relevant bit */

   
curl_multi_close($mh); // close the curl multi handler

?>
2014-04-19 21:28:41
http://php5.kiev.ua/manual/ru/function.curl-multi-getcontent.html
Автор:
It's probably a bug in the curl multi implementation:

In many many cases you keep the curl connection alive after a curl_exec(). 
With curl_multi that's not possible if you don't do this after every get_content() :
 curl_multi_remove_handle($ch);
 curl_multi_add_handle($ch);

I've not yet tested if this also breaks the keepalive connection but if you don't do this you'll just get the old previous response after each curl_multi_exec()
2017-11-28 07:45:33
http://php5.kiev.ua/manual/ru/function.curl-multi-getcontent.html

    Поддержать сайт на родительском проекте КГБ