Hey,
ich besitze eine servers.txt. In dieser befinden proxies. Diese Proxies würde ich gerne verbinden lassen, und durch eine API laufen lassen, die mir das Land, der jeweiligen Verbindung ausgibt, und mir am ende sagt, wie lange die Operation gedauert hat. Das Problem ist, dass ich immer den Wert 0 bekomme aus der API. Wie lange die Operationen gedauert haben, klappt ohne Problem. Curl_multi_exec benutze ich damit, dass nicht jeder Proxy nacheinander geprüft wird, sondern alle gleichzeitig, da es sonst ewig dauern würde. Hier mein COde, ich bitte um Hilfe.
Code
if(isset($_GET['proxChecker']))
{
$url = 'http://ip2c.org/self';
$servers = file('servers.txt');
function GetMicroTime()
{
list($usec, $sec) = explode(" ", microtime());
return((float)$usec + (float)$sec);
}
$mh = curl_multi_init();
foreach($servers as $server)
{
$ch23 = curl_init();
curl_setopt($ch23, CURLOPT_URL, "http://api.ip2c.info/json/");
curl_setopt($ch23, CURLOPT_TIMEOUT, 5);
curl_setopt($ch23, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch23, CURLOPT_ENCODING, "");
curl_setopt($ch23, CURLOPT_PROXY, trim($server));
curl_multi_add_handle($mh, $ch23);
$test = curl_multi_exec($mh, $ch23);
print_r($test);
echo "<br />";
}
$microTime = GetMicroTime();
do {
do {
} while (curl_multi_exec($mh, $stillRunning) === CURLM_CALL_MULTI_PERFORM);
} while ($stillRunning);
$timeSpend = GetMicroTime() - $microTime;
echo sprintf('%01.4f', $timeSpend);
}
Alles anzeigen
Der erste, der es löst, bekommt 5€ PP von mir