zhangjingyu
前天晚上发表的主题古代风俗小画100幅共有100个附件,而且还是jpeg格式的——这种格式的附件图片在论坛里来说是相当少的。由于原文件是jpeg格式的,图片也不算大,也就没有另存为jpg格式的。然而,首页多格的图片播放器里显示空白,也就是无法调用主题附件图片,或者说含有图片附件的主题。
首页多格出现问题,自然要查看newinfo.htm。发现有这样一句:
if(($rs_tid!=$imginfo[tid])&&(eregi("\.(jpg)$",$imginfo[attachurl]))){前面的条件是什么意思,不太明白,而且$rs_tid也是第一次出现,总共就两处,也不知道指的是什么;后面的条件,似乎应该是说附件地址(attachurl,完整如Mon_1902/16_2_8430fc5eb546edf.jpg)必须是以jpg结尾的,只有这两个条件都满足,才继续执行下面的代码:把附件地址、链接、主题标题写入缓存文件。所以,除了jpg格式的图片上传会写入缓存文件,上传其它格式的就有可能使缓存文件内容为空(判断不成立,不能写入。注意:不是说文件是空的,指的是没有附件图片地址、链接、标题数据),那么首页多格的图片播放器就不能显示了。
昨天搜索查看了这个eregi()函数,发现这样一个重要信息:php版本5.3以后,都不再支持eregi()函数,需要使用preg_match()替换。今天晚上特意查看了下本地集成环境的php版本,是5.2.17,目前还涉及不到这个eregi()函数能不能使用的问题,但当论坛重新上线后,服务器环境的php版本有可能会是5.3版本的,所以这个eregi()函数的使用还是需要谨慎的。既然如此,结合首页多格图片播放器无非就是调用论坛图片,根本就不需要对图片格式进行判断:只要有图片,那就调用,管它是jpg,还是jpeg、gif、png、bmp,等等。所以,后面的条件完全可以删除不用。经过今晚七八个主题的测试,完全没问题。