Napisałem klasę, aby ułatwić korzystanie z wielu żądań cURL Chcę, aby rejestrować błędy, gdy pojawi się błąd 404 lub jakikolwiek inny błąd. Mam już ustawiony CURLOPT_FAILONERROR
na true.Jak sprawdzić, który adres URL zawiódł w curl_multi_exec?
Aktualnie używam curl_multi_info_read()
.
i to jest mój kod:
$active = null;
do {
$multi_exec = curl_multi_exec($this->_multi_handle, $active);
} while ($multi_exec == CURLM_CALL_MULTI_PERFORM);
while ($active && $multi_exec == CURLM_OK) {
if (curl_multi_select($this->_multi_handle) != -1) {
do {
$multi_exec = curl_multi_exec($this->_multi_handle, $active);
$info = curl_multi_info_read($this->_multi_handle);
if ($info['result'] != 0) {
$this->_errors[] = $info; // currently storing the whole array
}
} while ($multi_exec == CURLM_CALL_MULTI_PERFORM);
}
}
Wynik na tablicy błędów jest tak:
Array
(
[0] => Array
(
[msg] => 1
[result] => 22 // on success this is 0
[handle] => Resource id #4 // does this help in finding the url if I have the handle ID ?
)
Więc jak mogę uzyskać adres URL, gdzie wydarzyło się błąd? to daje mi tylko identyfikator zasobu ID
i z góry dziękuję.