HH\Asio\curl_exec
A convenience wrapper around
curl_multi_await
namespace HH\Asio;
function curl_exec(
mixed $url_or_handle,
): Awaitable<string>;
Pass a cURL handle, or, more simply, a string containing a URL (and the
cURL handle will be created for you), and the cURL request will be executed
via async and the string
result will be returned.
curl_multi_info_read must be used to retrieve error information, curl_errno can't be used as this function is a wrapper to curl_multi_await.
Guides
Parameters
mixed $url_or_handle
Returns
Awaitable<string>
- - AnAwaitable
representing thestring
result of the cURL request.
Examples
The following shows a scenario where you are going to wait for and return the result of cURL activity on URLs, using the convenient wrapper that is curl_exec
.
require __DIR__."/../../vendor/autoload.php";
async function get_curl_content(Set<string> $urls): Awaitable<Vector<string>> {
$content = Vector {};
foreach ($urls as $url) {
$str = await \HH\Asio\curl_exec($url);
$content[] = \substr($str, 0, 10);
}
return $content;
}
function run(): void {
$urls = Set {'http://www.google.com', 'http://www.cnn.com'};
$content = \HH\Asio\join(get_curl_content($urls));
\var_dump($content);
}
run();
object(HH\Vector)#8 (2) {
[0]=>
string(10) "<!doctype "
[1]=>
string(10) "<!DOCTYPE "
}