Web,SQL:尽管文件名显示随机图像,但从文件夹加载图像

时间:2011-06-06 05:13:08

标签: php sql css image random

我想要一个网页在加载时显示几个随机图像。我想过几个解决方案,但我真的希望能够将图像转储到文件夹而不重命名,网页将从文件夹中的那些图像中选择并显示它们

我可以想象一个PHP解决方案将显示文件夹中的随机图像,但它需要查找某些名称。

所以我的下一步是建立一个SQL数据库,其中每个图像都有一个键,并且查询会随机选择10个键 - 然后将与它们关联的图像传递到一个数组中,文档将加载这些元素的。

但是现在我想我需要知道如何通过读取文件夹来自动填充SQL数据库?

洞察力表示赞赏,如果我不必重新发明轮子那就更好了

3 个答案:

答案 0 :(得分:3)

Glob在文件系统上工作,例如支持通配符

$files = glob('/path/to/files/*.jpg');
$yourRandomFile = array_rand($files);

这将返回一个随机的JPG文件,基于它的扩展名。

答案 1 :(得分:1)

这应该这样做:

function your_dir ($directory) 

{

$results = array();

$handler = opendir($directory);

while ($file = readdir($handler)) {

  if ($file != "." && $file != "..") {

    $results[] = $file;

    //or sql query for each file

    $sql = mysql_query("SELECT * FROM your_table WHERE your_file = '".$file."'");
    if(mysql_num_rows !== 0){

    //your query...

    }

    //

  }


}

closedir($handler);

return $results;

}


$directory = '/path/to/your/directory';

your_dir($directory);

从db中选择现有文件可能会更好,首先将它们放入一个数组并排除它们而不是检查每个文件。

答案 2 :(得分:0)

您可以执行以下操作 1.从您希望页面加载图像的位置读取完整目录 2.将图像名称存储在数组中 3.现在使用从1到数组大小的随机函数生成一个数字 4.将生成的数字视为数组的关键字,并使用该图像名称放置图像。