php随机图像,其中宽度等于

php随机图像,其中宽度等于,php,arrays,image,width,Php,Arrays,Image,Width,我现在有这个片段,它吐出一个随机的图像 $imgDir = 'images/'; $images = glob($imagesDir . '*.{jpg}', GLOB_BRACE); $randimg = $images[array_rand($images)]; 但是我希望图像具有一定的宽度(600px),而不是使用CSS扭曲图像。有没有一种方法可以使用包含上述代码片段的PHP检查图像宽度?是的,您可以查看每个单独的文件并用CSS检查其大小 这当然是一个非常昂贵的操作要做的每一次。相反

我现在有这个片段,它吐出一个随机的图像

$imgDir  = 'images/';
$images  = glob($imagesDir . '*.{jpg}', GLOB_BRACE);
$randimg = $images[array_rand($images)];

但是我希望图像具有一定的宽度(600px),而不是使用CSS扭曲图像。有没有一种方法可以使用包含上述代码片段的PHP检查图像宽度?

是的,您可以查看每个单独的文件并用CSS检查其大小


这当然是一个非常昂贵的操作要做的每一次。相反,只需这样做一次,并将大小作为文件名的一部分(例如,
foobar_500.jpg
)和
glob
,或者使用数据库来组织图像,从这里开始,您可以保存此类元数据并查询它。

是的,您可以查看每个文件,并使用检查其大小


这当然是一个非常昂贵的操作要做的每一次。相反,只需这样做一次,并将文件名的大小部分(例如,
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)];

这将确保您仅从宽度为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)];

谢谢,但我想我会选择deceze的答案,在数据库中存储图像宽度,并使用RAND()查询调用它,就像他说的getimagesize是一个昂贵的操作,特别是当我有50000多张图像时。谢谢,但我想我会选择deceze的答案,在数据库中存储图像宽度,并使用RAND()调用它查询就像他说的getimagesize是一个昂贵的操作,尤其是当我有50000多张图片时。谢谢deceze,使用数据库选项并使用RAND()查询。(2分钟b4我可以标记为答案)谢谢deceze,使用数据库选项并使用RAND()查询。(2分钟b4我可以标记为答案)