note 91163 added to function.getimagesize
| From: | $user=" | Date: | Thu, 28 May 2009 09:04:25 +0000 |
| Subject: | note 91163 added to function.getimagesize | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-156099@lists.php.net to get a copy of this message | ||
<?
function getsizeandformat($file){
if(!$fp=@fopen($file,"rb")) return false;
$first=unpack("H*first",fread($fp,4));
extract($first);
if($first=="89504e47") $format="PNG";
elseif(strpos($first,"474946")===0) $format="GIF";
elseif(strpos($first,"ffd8")===0) $format="JPEG";
else {fclose($fp); return false;}
if($format=="GIF"):
fseek($fp,6);
$size=unpack("vwidth/vheight",fread($fp,4));
$size["format"]="GIF";
endif;
if($format=="JPEG"):
fseek($fp,0);
$bytes=null;
while(!feof($fp)):
$bytes.=fread($fp,50);
$hex=unpack("H*hex",$bytes);
extract($hex);
if(($pos=strpos($hex,"ffc0"))!==false):
$bytes.=fread($fp,20);
$hex=unpack("H*hex",$bytes);
extract($hex);
break;
endif;
endwhile;
$hex=substr($hex,$pos+10,8);
list($height,$width)=str_split($hex,4);
$size=array("width"=>hexdec($width), "height"=>hexdec($height),
"format"=>"JPEG");
endif;
if($format=="PNG"):
fseek($fp,0);
$bytes=null;
while(!feof($fp)):
$bytes.=fread($fp,50);
$hex=unpack("H*hex",$bytes);
extract($hex);
if(($pos=strpos($hex,"49484452"))!==false):
$bytes.=fread($fp,20);
$hex=unpack("H*hex",$bytes);
extract($hex);
break;
endif;
endwhile;
$hex=substr($hex,$pos+8,16);
list($width,$height)=str_split($hex,8);
$size=array("width"=>hexdec($width), "height"=>hexdec($height),
"format"=>"PNG");
endif;
fclose($fp);
return $size;}
?>
----
Server IP: 195.54.192.44
Probable Submitter: 80.251.124.66
----
Manual Page -- http://www.php.net/manual/en/function.getimagesize.php
Edit -- https://master.php.net/note/edit/91163
Del: integrated -- https://master.php.net/note/delete/91163/integrated
Del: useless -- https://master.php.net/note/delete/91163/useless
Del: bad code -- https://master.php.net/note/delete/91163/bad+code
Del: spam -- https://master.php.net/note/delete/91163/spam
Del: non-english -- https://master.php.net/note/delete/91163/non-english
Del: in docs -- https://master.php.net/note/delete/91163/in+docs
Del: other reasons-- https://master.php.net/note/delete/91163
Reject -- https://master.php.net/note/reject/91163
Search -- https://master.php.net/manage/user-notes.php