Php Web,SQL:不管文件名如何显示随机图像,从文件夹加载图像

Php Web,SQL:不管文件名如何显示随机图像,从文件夹加载图像,php,sql,css,image,random,Php,Sql,Css,Image,Random,我想要一个网页来显示几个随机加载的图像。我想到了几种解决方案,但我真的希望能够将图像转储到一个文件夹中,而无需重命名它们,网页将从文件夹中的图像中进行选择并显示它们 我可以想象一个PHP解决方案将显示文件夹中的随机图像,但它需要查找某些名称 因此,我的下一步是建立一个SQL数据库,其中每个图像都有一个键,通过查询随机选择10个键-然后将与它们关联的图像传递到一个数组中,文档将加载其中的元素 但现在我想我需要知道如何通过让SQL数据库读取文件夹来自动填充它 很感谢您的洞察力,如果我不必重新发明轮子

我想要一个网页来显示几个随机加载的图像。我想到了几种解决方案,但我真的希望能够将图像转储到一个文件夹中,而无需重命名它们,网页将从文件夹中的图像中进行选择并显示它们

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

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

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


很感谢您的洞察力,如果我不必重新发明轮子,Glob就可以像文件系统一样工作,例如支持通配符

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

这将根据扩展名返回一个随机的JPG文件。

Glob的工作方式与文件系统类似,例如支持通配符

$files = glob('/path/to/files/*.jpg');
$yourRandomFile = array_rand($files);
这将根据扩展名返回一个随机的JPG文件。

这应该可以做到:

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);
最好先从数据库中选择现有文件并将其放入数组中并排除,而不是逐个检查。

这应该可以做到:

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);
最好先从数据库中选择现有文件并将其放入数组中并排除,而不是逐个检查。

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

< p>您可以如下所做。 1.从希望页面加载图像的位置读取完整目录
2.将图像名称存储在数组中
3.现在使用随机函数从1到数组大小生成一个数字

4.将生成的数字视为数组的键,并使用该图像名来放置图像。

啊,这是正确的轨道,也有这个函数的JavaScript版本吗?不,在JavaScript中你不知道服务器上有什么文件。您必须从服务器加载所有文件名,将它们写入javascript数组,然后使用
Math.random()
。是的,我刚刚使用了php函数,为现有HTML页面添加了一个巨大的echo语句。这是正确的方法,这个函数也有javascript版本吗?不是,在javascript中,您不知道服务器上有哪些文件。您必须从服务器加载所有文件名,将它们写入javascript数组并使用
Math.random()
。是的,我刚刚使用了php函数,对现有HTML页面使用了一个巨大的echo语句。我应该遵循这条SQL路线,因为图像需要一个缩略图来对应。您可以使用这个循环同时创建缩略图,这完全取决于您的文件夹中有/将有多少文件我实现的方法只是使用PHP。我使用glob函数获取数组中列出的文件,然后洗牌数组并将其拼接。每当我调用图像时,我也可以调用它对应的缩略图文件,因为它遵循命名约定。我做了一个额外的函数来替换一个子字符串,并将新字符串作为缩略图文件返回。我应该遵循此SQL路径,因为图像需要一个缩略图来对应,您可以使用此循环同时创建缩略图,这完全取决于您的文件夹中有/将有多少文件我实现的方法只是使用PHP。我使用glob函数获取数组中列出的文件,然后洗牌数组并将其拼接。每当我调用图像时,我也可以调用它对应的缩略图文件,因为它遵循命名约定。我做了一个附加函数来替换一个子字符串,并将新字符串作为缩略图文件返回。