The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
|
#1
|
|||
|
|||
Problem with getimagesize function
I have a serious problem with a modification I have done.
I've modified the handle_bbcode_img_match function in functions_bbcodeparse.php of vB, to check for large images in the posts. The code of the function has been extended to use the getimagesize function to check for the size of the images. However, this results in extreme increase of the time it takes to load a page, with lots of images. For example, a page which has 7 pictures and loads in 1.20 seconds without the size checking, takes 6.22 seconds if the function is used. Another one which has 26 pictures goes from 1.8 sec without the size checking to 30 secs when the size is checked. Here is the code I am using to check the size of the pictures. Code:
function handle_bbcode_img_match($link) { // <-- 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; } } } I would appreciate all the help you can give me on this. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|