Sergo_Sev
Творец
- Регистрация
- 14 Июн 2008
- Сообщения
- 578
- Реакции
- 193
- Автор темы
- #1
Нужно добавить проверку в скрипт - если сервер возвращает ошибку (например 502 и 404) то не записываем файл, а записываем только при получении ответа 200
Нашел вот такой пример, но так и не понял куда и как добавить проверку
PHP:
function multiRequest($data) {
// Массив для ресурсов соединения
$curls = array();
// Массив для результатов
$result = array();
// Инициализация мульти запроса
$mh = curl_multi_init();
// Задание параметров запроса
foreach ($data as $id => $d)
{
$curls[$id] = curl_init();
$url = (is_array($d) && !empty($d['url'])) ? $d['url'] : $d;
curl_setopt($curls[$id], CURLOPT_URL, $url);
curl_setopt($curls[$id], CURLOPT_HEADER, false);
curl_setopt($curls[$id], CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $curls[$id]);
}
// Выполняем запрос пока есть соединения
$running = null;
do
{
curl_multi_exec($mh, $running);
}
while($running > 0);
// Получаем данные и закрываем соединения
foreach($curls as $url_id => $content)
{
$str = curl_multi_getcontent($content);
$file = fopen($url_id, 'w');
fwrite($file, $str);
fclose($file);
}
curl_multi_close($mh);
return $result;
}
$data = array(
"AjdwhC4lGqY.jpg" => 'http://cs10656.vk.me/v10656915/3e4/AjdwhC4lGqY.jpg', // ФАЙЛ НЕ доступен
"RULNqogANTU.jpg" => 'http://pp.vk.me/c9709/v9709308/49/RULNqogANTU.jpg',
);
$r = multiRequest($data);
Нашел вот такой пример, но так и не понял куда и как добавить проверку
PHP:
function get_web_page( $url )
{
$ch = curl_init( $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвращает веб-страницу
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
$result = get_web_page( "http://cs10656.vk.me/v10656915/3e4/AjdwhC4lGqY.jpg" );
if (($result['errno'] != 0 )||($result['http_code'] != 200)){
echo $result['errmsg'];
}else{
$page = $result['content'];
echo $page;
}