善恶资源网专注优秀技术教程分享网-傅汉松!

对帝国CMS生成缩略图函数sys_ResizeImg效率慢的研究和改进

傅汉松 技术教程

汉松出品|资源介绍

傅汉松本次为大家分享的是对帝国CMS生成缩略图函数sys_ResizeImg效率慢的研究和改进

傅汉松

小伙伴们再帝国CMS模板开发中会面对不同位置调用不同尺寸缩略图的问题,这个时候我们一般会用帝国CMS的sys_ResizeImg自动生成缩略图函数。但是如果站内存在大量需要处理的缩略图的时候,我们会发现是非常慢的,于是墨鱼对此缩略图进行了一些分析研究和改进。

首先要改进的是判断缩略图是否已经存在,如果存在就不再执行生成缩略图操作。具体函数过程文件/e/class/t_functions.PHP   函数命名sys_ResizeImg

原始判断缩略图是否生成过存在的方法为PHP的file_exists函数,此函数相比专门的文件判断存在is_file函数在效率上要慢很多。

查找:

if(empty($target_fileName)&&file_exists($newname.$filetype))

替换成:

if(empty($target_filename)&&is_file($newname.$filetype))

其次是有的小伙伴GD.PHP函数库换过非官方的处理方法,可能面临着PNG图片缩略图生成后为JPG格式,那么上面的那句代码就无法判断这个缩略图已经生成存在了,所以每次更新页面都会重复生成,效率会非常低。那么我们就要把上面那种改法就不适用了,我们这里采用多次判断方法来判断是否真的存在,进而减少PNG重复生成缩略图的问题。

查找:

if(empty($target_filename)&&file_exists($newname.$filetype))
{
return $newurl.$newfilename.$filetype;
}

替换成:

if(empty($target_filename)&&is_file($newname.'.jpg'))
{
return $newurl.$newfilename.'.jpg';
}
if(empty($target_filename)&&is_file($newname.'.png'))
{
return $newurl.$newfilename.'.png';
}
if(empty($target_filename)&&is_file($newname.'.gif'))
{
return $newurl.$newfilename.'.gif';
}

至此,sys_ResizeImg自动生成缩略图函数效率慢的问题能解决80%吧!

标签: 暂无标签

免责声明:

本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:321976193@qq.com

同类推荐
评论列表

技术教程 对帝国CMS生成缩略图函数sys_ResizeImg效率慢的研究和改进
小伙伴们再帝国CMS模板开发中会面对不同位置调用不同尺寸缩略图的问题,这个时候我们一般会用帝国CMS的sys_ResizeImg自动生成缩略图函数。但是如果站内...
扫描二维码阅读原文
QQ娱乐网 January, 01
生成社交图 ×
    78.78ms