Reputation: 1442
I am trying to return two http status codes from the header information from two parallel cURL requests my script makes. So far my script is as below, the print_r() at the end prints out: Array ( [0] => 200 [1] => ). I'm not sure why it's not returning the 2nd status code? Thanks in advance.
function checkHTTPStatusCode($ip1,$ip2) {
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
//create cURL resources
$ch1 = curl_init();
$ch1 = curl_init();
//set opptions
curl_setopt ($ch1, CURLOPT_URL,$ip1);
curl_setopt ($ch1, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch1, CURLOPT_VERBOSE, false);
curl_setopt ($ch1, CURLOPT_TIMEOUT, 5);
curl_setopt ($ch2, CURLOPT_URL,$ip2);
curl_setopt ($ch2, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch2, CURLOPT_VERBOSE, false);
curl_setopt ($ch2, CURLOPT_TIMEOUT, 5);
//create the multiple cURL handle
$mh = curl_multi_init();
//add the two handles
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
//execute the handles
$running = null;
do {
curl_multi_exec($mh, $running);
} while($running > 0);
//get http status codes
$httpcode1 = curl_getinfo($ch1, CURLINFO_HTTP_CODE);
$httpcode2 = curl_getinfo($ch2, CURLINFO_HTTP_CODE);
//close the handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
return array($httpcode1,$httpcode2);
}
$test = checkHTTPStatusCode('http://www.yahoo.com','http://www.google.com');
print_r($test);
Upvotes: 3
Views: 2743
Reputation: 15106
Typo here:
//create cURL resources
$ch1 = curl_init();
$ch1 = curl_init();
I guess you meant $ch2 = curl_init();
for the second one.
Upvotes: 3