Заменяем getimagesize на CURL. И get_headers на CURL

1)Заменяем getimagesize на CURL. 2)Заменяем get_headers на CURL.

Иногда для увеличения безописности отключают PHP: allow_url_fopen. В этом случае не работают многие нужные функции... Например: getimagesize и getheaders. Пишем альтернативу на Curl.

1)Заменяем getimagesize на CURL.

 Code:
#---------------------------------------------------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
////////////////////////// getimagesize_curl  ///////////////////////
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
#везде заменены getimagesize на эту ф-ю
#--------------	getimagesize new wersion by CURL
function getimagesize_curl($file){
#get_mime_type_curl
$ch = curl_init($file);  
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ;  
$ch_content = curl_exec($ch);  
  
if(!curl_errno($ch))  
{  
   # $ch_image = curl_getinfo($ch);   // used nije
	$ch_image= curl_getinfo($ch, CURLINFO_CONTENT_TYPE);  
	
}  
curl_close($ch);   
#get_mime_type_curl
			 
#getimagesize curl------------------   
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $image);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
$ch_file_contents = curl_exec($ch);
curl_close($ch);

$ch_new_image = ImageCreateFromString($ch_file_contents);
switch ($ch_image) { 
        case 'image/jpeg': imagejpeg($ch_new_image, "temp.jpg",100); break;
        case 'image/gif': imagegif($ch_new_image, "temp.jpg",100); break;
		case 'image/png': imagepng($ch_new_image, "temp.jpg",100); break;
		case 'image/jp2': imagewbmp($ch_new_image, "temp.jpg",100); break;
}//switch ($ch_image) {            

// Get new dimensions
$info = getimagesize("temp_curl.jpg");
@unlink("temp_curl.jpg");
return $info;
}; //function getimagesize_curl($file){
#getimagesize curl------------------
#--------------	getimagesize new wersion by CURL
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
////////////////////////// getimagesize_curl  ///////////////////////
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
#---------------------------------------------------------------------------------------------------------------------
Вместо getimagesize вызываем getimagesize_curl, по идее покажет правльно. Есть сминусы - если много больших катинок, то загрузка замедляется.

2)Заменяем get_headers на CURL.

С get_headers все проще и быстрее.
 Code:
						   $ch = curl_init();
						   curl_setopt($ch, CURLOPT_URL,            $URL);
						   curl_setopt($ch, CURLOPT_HEADER,         true);
						   curl_setopt($ch, CURLOPT_NOBODY,         true);
						   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
						   curl_setopt($ch, CURLOPT_TIMEOUT,        1);
						   $Headers = curl_exec($ch);
						   curl_close($ch);
$URL - ссылка к файлу. Теперь мы можем прорить наличие файла вот так:
 Code:
if(strpos($Headers, '200')) { 
#ФАЙЛ НАЙДЕН
} else { 
#нету
};
Автор: Бабий Никита Юрьевич
Защита от Iframe и других уязвимостей. Защита от взлома.
Многоуровневая структура, показать дерево категорий.
Скрипт импорта RSS новостей
Хостинг не оплачен.