php中的随机图片

时间:2015-04-20 11:25:56

标签: php

我目前正在使用这个php代码在php页面上显示图像,其中一些文本由用户使用输入标记给出。

我的PHP代码是:

<?php
header('Content-type: image/jpeg');
$jpg_image = imagecreatefromjpeg('img/1.jpg');
$white = imagecolorallocate($jpg_image, 73, 41, 236);
$font_path = 'OpenSans-Italic.TTF';
$text= $_GET['name']; 
imagettftext($jpg_image, 25, 0, 75, 50, $white, $font_path, $text);
imagejpeg($jpg_image);
imagedestroy($jpg_image);
?>

此代码非常有效我使用$_GET['name'];从用户那里获取输入,因为您可以看到我选择了一张图片,用户提供的文字将出现在我的图像名称为{ {1}}我的图书馆里有更多图片,我想要随机选择它们并在用户上打印文字我的其他图片名称是1.jpg2.jpg,{{1}希望你能为我找到任何解决方案。

3 个答案:

答案 0 :(得分:2)

其他答案假设您始终使用数值作为文件名,但如果您不能将文件名放在数组中并使用array_rand()从数组中获取随机文件名,如下所示:

$image_files = array("1.jpg", "2.jpg", "3.jpg", "4.jpg");
$image_filename = $image_files[array_rand($image_files)];
$jpg_image = imagecreatefromjpeg("img/{$image_filename}");

请记住,array_rand()会从数组返回一个随机密钥,而不是值。

从这里开始,您可以轻松地进一步使用glob()从目录中获取文件名。执行此操作时,您应该考虑glob()返回完整路径,因此您需要使用basename()来获取文件名:

$image_files = glob("img/*.jpg");
$image_path = $image_files[array_rand($image_files)];
$image_filename = basename($image_path);

答案 1 :(得分:1)

假设您有15张图片,可以使用:

$randomNumber = rand(1, 15);
$jpg_image = imagecreatefromjpeg('img/' . $randomNumber . '.jpg');

答案 2 :(得分:0)

$countImages = 10; // your last number
$jpg_image = imagecreatefromjpeg('img/' . rand(1,$countImages). '.jpg');