我现在有一个片段,它吐出一个随机图像
$imgDir = 'images/';
$images = glob($imagesDir . '*.{jpg}', GLOB_BRACE);
$randimg = $images[array_rand($images)];
但我希望图像有一定的宽度(600px),而不是使用CSS扭曲图像。有没有一种方法可以使用PHP结合上面的代码片段来检查图像宽度?
是的,您可以遍历每个单独的文件,并使用getimagesize
检查其大小。
当然,每次这样做都是非常昂贵的。相反,只做一次,并将大小作为文件名的一部分(例如foobar_500.jpg
)和glob
,或者使用数据库来组织图像,从哪里开始保存此类元数据并查询。
这将确保您只从宽度为600 的图像中选择随机图像
$imgDir = 'images/';
$images = glob($imgDir . '*.{jpg}', GLOB_BRACE);
$arr_images_600 = array();
foreach ($images as $img)
{
list($width, $height, $type, $attr) = getimagesize($img);
if ($width == 600) { $arr_images_600[] = $img; }
}
$randimg = $images[array_rand($arr_images_600)];