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;
}