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

  • 压缩包大小:Unkown
  • 开发语言:
  • 软件授权:
  • 更新时间:2022-12-27 12:17:50
  • 软件类别:
  • 相关链接:未知官方
  • 网友评分:
  • 应用平台:Win2000/WinXP/Win2003
  • 演示地址:演示地址

小伙伴们再帝国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%吧!

以上就是对帝国CMS生成缩略图函数sys_ResizeImg效率慢的研究和改进。你要和我计较,我绝对不会大方。你要特别慷慨,我绝对比你敞亮。你心换我心,真心对真心。更多关于对帝国CMS生成缩略图函数sys_ResizeImg效率慢的研究和改进请关注haodaima.com其它相关文章!

关键词: 帝国CMS sys_ResizeImg

下载地址

下载失败问题?【我要反馈】

提示:好代码网站资源是由用户投稿上传,内容来自互联网,本站只做免费推荐用于学习分享,如有版权及其他问题,请联系小编处理!

下载“jQuery焦点无缝轮播图特效”地址:

  • 日榜
  • 周榜
  • 月榜

推荐下载

  • 开发手册
  • 常用软件