note 72082 deleted from function.getimagesize by nlopess
| From: | nlopess@php.net | Date: | Mon, 01 Jan 2007 21:28:23 +0000 |
| Subject: | note 72082 deleted from function.getimagesize by nlopess | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-121178@lists.php.net to get a copy of this message | ||
Note Submitter: john at m1911 dot org
----
I have a serious problem with getimagesize.
I am using this function to check the size of images posted in my forums site. However, if a page
contains several images, this code increases the page creation time to a very large degree. For
example if a page contains 7 images, loading time goes from 1.1 sec to 7 sec. If a page contains 25
images loading time goes from 1.9 sec to 30 sec. Is that function so slow, or am I doing something
wrong? Here is the code I use:
// <-- This is the button/image that will be displayed instead of the big image.
$img_replacement1 = "images/misc/toobigimage.gif";
// <-- This is the button/image that will be displayed when there is no image at the URL.
$img_replacement2 = "images/misc/notexistimage.gif";
// <-- This is the maximum width that an image is allowed to be viewed safely.
$img_max_width = 800;
// <-- This is the maximum height that an image is allowed to be viewed safely.
$img_max_height = 600;
$link = strip_smilies(str_replace('\\"', '"', $link));
$link = str_replace(' ', '', $link);
// Let's get the properties of the image. We'll also check if the image exists
if ($imginfo=@getimagesize($link))
{
// If image exists and its size is outside our specs....
if (($imginfo[0] > $imginfo[1] and (($imginfo[0] > $img_max_width) or ($imginfo[1] >
$img_max_height))) or ($imginfo[0] < $imginfo[1] and (($imginfo[1] > $img_max_width) or
($imginfo[0] > $img_max_height))) or ($imginfo[0] == $imginfo[1] and ($imginfo[0] * $imginfo[1]
> $img_max_width * $img_max_height)))
{
// we change the image to a link,
$w=imageResize($imginfo[0], $imginfo[1], 100);
$thumb="<img src=\"$link\" $w>";
$inp_string="<table><tr><td valign=\"middle\"
align=\"left\"><a href=\"$link\" target=\"_blank\"><img
src=\"$img_replacement1\" border=\"0\"
alt=\"\"></A></td><td valign=\"middle\"
align=\"left\"><a href=\"$link\"
target=\"_blank\">$thumb</A></td></tr></table><p>";
return $inp_string;
}
else
{
// else, we return the image.
$inp_string='<img src="' . $link . '" border="0"
alt="" />';
return $inp_string;
}
}
else
{
if (!$allowimgsizefailure)
{
@unlink($link);
// If the image does not exist at the specified URL, show the proper icon and the URL
$inp_string="<table><tr><td valign=\"middle\"
align=\"left\"><img src=\"$img_replacement2\" border=\"0\"
alt=\"\"></td><td valign=\"middle\"
align=\"left\">($link)</td></tr></table><p>";
return $inp_string;
}
}
Many thanks for any help you can profice