是否可以减慢PHP cURL请求的速度

Gra*_*ant 2 php curl

这可能与通常要求的相反,但无论如何实际上使cURL请求变慢并使加载过程持续更长时间?我搜索过,找不到任何解决方案.谢谢你的帮助!

mad*_*vid 5

如果您确实需要破解缓慢的传输,您可以在curl进度函数中添加usleep:

<?php

/* fast curl */
$cFast = curl_init('http://stackoverflow.com/users/2779152/madebydavid');
curl_setopt($cFast, CURLOPT_RETURNTRANSFER, true);

$time = microtime(true);
$result = curl_exec($cFast);
echo("fast: ".(microtime(true) - $time)."\n");


/* slow curl */
$cSlow = curl_init('http://stackoverflow.com/users/2779152/madebydavid');
curl_setopt($cSlow, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cSlow, CURLOPT_NOPROGRESS, false);
curl_setopt($cSlow, CURLOPT_PROGRESSFUNCTION, function() {
    usleep(100000);
    return 0;
});

$time = microtime(true);
$result = curl_exec($cSlow);
echo("slow: ".(microtime(true) - $time)."\n");
Run Code Online (Sandbox Code Playgroud)

第一个请求很快,第二个请求很慢 - 如果将其保存为curlFastSlow.php然后运行它,第二个请求应该有明显的差异:

$ php -q curlFastSlow.php
fast: 0.58203315734863
slow: 1.5010859966278
Run Code Online (Sandbox Code Playgroud)


Bre*_*Zan 5

尝试CURLOPT_MAX_RECV_SPEED_LARGE,以减慢传输速度

curl_setopt($cSlow,CURLOPT_MAX_RECV_SPEED_LARGE,10)
Run Code Online (Sandbox Code Playgroud)

它只适用于PHP 5.4

ps.Sorry穷人的恩赐