我有许多图像,他们的信息存储在MySQL数据库中。图像本身存储在一个文件夹中,但数据库包含其URL以及其他相关数据。
我遇到了PHP getimagesize
,我想用它来填充每个图片的width=
标签的height=
和img
属性。但是,我被告知这样的开销(因为有数百张图像)会大大减慢页面加载速度。
我很好奇是否有办法使用getimagesize
从数据库中的信息中搜索出所有图片,计算他们的width
和height
,然后将数据插入到数据库中的width
和height
字段中,从而允许一个简单的SQL查询来完成工作?
这是我的数据库结构:
CREATE TABLE `secondary_images` (
`imgId` int(10) unsigned NOT NULL AUTO_INCREMENT,
`primaryId` int(10) unsigned DEFAULT NULL,
`imgURL` varchar(255) DEFAULT NULL,
`width` varchar(255) DEFAULT NULL,
`height` varchar(255) DEFAULT NULL,
PRIMARY KEY (`imgId`),
KEY `primaryId` (`primaryId`),
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
答案 0 :(得分:0)
$image_folder = "images/";
$res = mysql_query('SELECT * FROM secondary_images')
while ($row = mysql_fetch_assoc($res)) {
$size = getimagesize($image_folder.$row['imgUrl']);
mysql_query("UPDATE secondary_images SET width='{$size[0]}', height='{$size[1]} WHERE imgId='{$row['imgId']}'");
}
为什么要将图像大小放在html中呢?
答案 1 :(得分:0)
此算法可能有所帮助:
尽管如此,我认为最好在用户点击页面时跳过更新的想法。在某些时候,图像数据的初始插入已经完成 - 您当时可以使用getimagesize(),还是在独立于您的网站执行扫描的单独程序中?
答案 2 :(得分:-1)
如果您不想使用getimagesize(),则无法获得图像大小。我认为当它们在本地保存时速度足够快