0

我当前的脚本是这样的:

$attach[] = array('pics/pic1.jpg', 'image/jpeg');

我该如何更改它,所以它会在 pics/ 文件夹中随机生成图片而不是指定的图片?

图片中有 20 张图片/

我希望脚本使用随机的。

4

4 回答 4

6

你可以用array_rand()这个。如果您还没有数组中的所有文件,您可以轻松地做到这一点glob()

$all_pics = array();
foreach (glob("./pics/*") as $filename)
    $all_pics[] = array($filename, filetype($filename));

$random_pic = array_rand($all_pics);

这是通用的,如果您确定您的图片都命名为pic1,pic2等,最好只生成一个随机数并像在sal00ms answer中那样使用它。

于 2013-11-07T14:30:18.847 回答
5

你可以尝试这样的事情:

$attach[] = array('pics/pic'.rand(1,20).'.jpg', 'image/jpeg');

并重命名您的文件 pic1,pic2...,pic20

于 2013-11-07T14:27:36.490 回答
0

你也可以试试这样的

function getRandomImage()
{
    // add more images in the array
    $pics = array('pics/pic1.jpg', 'image/pic.jpeg', 'photo/pic.png');
    $i = rand(0, count($pics)-1);
    return $pics[$i];
}

$image = getRandomImage();
于 2013-11-07T14:37:25.563 回答
0

先生成一个随机数!

 $random_number = rand(0, 19);

然后,在一个数组中获取该文件夹的所有图片。

 $pics = glob("pics/*");

然后,使用随机数从数组中获取随机图片

 $random_pic = $pics[$random_number];

您可以一步将其简化为

 $random_pic = glob("pics/*")[rand(0, 19)];
于 2013-11-07T14:38:48.057 回答