Authentication Services
Command Line Specific Extensions
Compression and Archive Extensions
Cryptography Extensions
Database Extensions
Date and Time Related Extensions
File System Related Extensions
Human Language and Character Encoding Support
Image Processing and Generation
Mail Related Extensions
Mathematical Extensions
Non-Text MIME Output
Process Control Extensions
Other Basic Extensions
Other Services
Search Engine Extensions
Server Specific Extensions
Session Extensions
Text Processing
Variable and Type Related Extensions
Web Services
Windows Only Extensions
XML Manipulation
GUI Extensions
Keyboard Shortcuts
?
This help
Next menu item
Previous menu item
Previous man page
Next man page
Scroll to bottom
Scroll to top
Goto homepage
Goto search
(current page)
Focus search box
If
CURLOPT_RETURNTRANSFER
is an option that is set for a specific handle,
then this function will return the content of that cURL handle in the form
of a string.
michael at xendica dot com
¶
10 years ago
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($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // returns the result - very important
curl_setopt($ch, CURLOPT_HEADER, 0); // 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
?>
butesa at freenet dot de
¶
11 years ago
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
(
$ch
,
CURLOPT_RETURNTRANSFER
,
1
);
$a
=
curl_exec
(
$ch
);
$b
=
curl_multi_getcontent
(
$ch
);
var_dump
(
$a
===
$b
);
curl_close
(
$ch
);
?>
will return:
bool(true)