Hi,
ich versuch mich grade an einem Gateway-Check (so ne Art Pingservice um zu schauen welchen HTTP-Statuscode die Abfrage zurückliefert).
Gleich erstmal die Funktion:
CODE
public function checkGatewayStatus() {
$gatewayArray = array('http://www.domain-1.com', 'http://www.domain-2.com', 'http://www.domain-3.com');
$multiGatewayArray = array();
foreach($gatewayArray as $url) {
$ci = curl_init();
// cURL Optionen setzen
curl_setopt($ci, CURLOPT_URL, $url);
curl_setopt($ci, CURLOPT_USERAGENT, 'Gateway Check | Botversion 1.3');
curl_setopt($ci, CURLOPT_HEADER, 1);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
// curl_setopt($ci, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 1);
curl_exec($ci);
$info = curl_getinfo($ci);
curl_close($ci);
// Alle Gateways inkl. zurück geliefertem Statuscode in $multiGatewayArray speichern
array_push($multiGatewayArray, array("$url" => $info['http_code']));
} //FOREACH Ende
print_r($multiGatewayArray);
} // Funktionsende
print_r() ist hier selbstverständlich zu Testzwecken und liefert folgende Ausgabe:
Array ( [0] => Array ( [http://www.domain-1.com] => 200 ) [1] => Array ( [http://www.domain-2.com] => 200 ) [2] => Array ( [http://www.domain-3.com] => 301 ) )
Nun möchte ich den Gateway finden, der mir den Statuscode 200 zurückliefert. Möglichst nur den Ersten, es darf/sollte ebenfalls nur ein Gateway sein.
Mit array_search('200', $multiGatewayArray); funktionierts nicht.
Jemand ne Idee wie ichs lösen könnte?
Danke und Gruß
TTlong
ich versuch mich grade an einem Gateway-Check (so ne Art Pingservice um zu schauen welchen HTTP-Statuscode die Abfrage zurückliefert).
Gleich erstmal die Funktion:
CODE
public function checkGatewayStatus() {
$gatewayArray = array('http://www.domain-1.com', 'http://www.domain-2.com', 'http://www.domain-3.com');
$multiGatewayArray = array();
foreach($gatewayArray as $url) {
$ci = curl_init();
// cURL Optionen setzen
curl_setopt($ci, CURLOPT_URL, $url);
curl_setopt($ci, CURLOPT_USERAGENT, 'Gateway Check | Botversion 1.3');
curl_setopt($ci, CURLOPT_HEADER, 1);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
// curl_setopt($ci, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 1);
curl_exec($ci);
$info = curl_getinfo($ci);
curl_close($ci);
// Alle Gateways inkl. zurück geliefertem Statuscode in $multiGatewayArray speichern
array_push($multiGatewayArray, array("$url" => $info['http_code']));
} //FOREACH Ende
print_r($multiGatewayArray);
} // Funktionsende
print_r() ist hier selbstverständlich zu Testzwecken und liefert folgende Ausgabe:
Array ( [0] => Array ( [http://www.domain-1.com] => 200 ) [1] => Array ( [http://www.domain-2.com] => 200 ) [2] => Array ( [http://www.domain-3.com] => 301 ) )
Nun möchte ich den Gateway finden, der mir den Statuscode 200 zurückliefert. Möglichst nur den Ersten, es darf/sollte ebenfalls nur ein Gateway sein.
Mit array_search('200', $multiGatewayArray); funktionierts nicht.
Jemand ne Idee wie ichs lösen könnte?
Danke und Gruß
TTlong