关于php:如何在javascript中显示目录的所有图像?

How to display all images of a directory in javascript?

我想在javascript的帮助下动态显示目录中的所有图像。我该怎么做?


我不认为这是可能的,但是如果您向ASP.NET或PHP(或类似的)页面发出Ajax请求,他们可以列出文件夹中的文件,并将其返回给javascript显示。

跨域策略显然适用。

如果您使用的是PHP,那么应该使用递归目录来获取完整的文件结构。PHP有一个可以使用的扫描目录函数。

基本代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function listdir($folder) {
    if (!is_dir($folder)) {
        return array(); //empty if not a folder
    }
    $return = scandir($folder);
    $subfolders = array();
    array_shift($return); //first two values are always .. & .
    array_shift($return);
    foreach ($return as $key => $value) {
        if (is_dir($value)) {
            unset($return[$key]);
            $subfolders[$value] = listdir($value); //recursively analyse the subdirectory
        }
    }
    return array_merge(array_values($return), $subfolders);

}

注意:这个还没有测试过,如果不工作请告诉我。


你忘了echo标签末尾的'

1
2
3
4
5
<?php
    foreach(glob("/path/to/images/{*.gif,*.jpg,*.png,*.jpeg,*.bmp}", GLOB_BRACE) as $image){
        echo '<img src="'.$image.'">';
    }
?>


基本PHP示例

1
2
3
4
5
6
7
<?php

foreach(glob("/path/to/images/{*.gif,*.jpg,*.png,*.jpeg,*.bmp}", GLOB_BRACE) as $image){
    echo '<img src="'.$image.'">;
}

?>

除非目录有索引或者您事先知道文件名,否则使用纯javascript是不可能的。使用PHP的另一种选择是:

  • 向以数据作为目录名的PHP文件发送Ajax请求

  • 然后,php文件使用opendirreaddirscandir等命令访问目录内容。有关通过php readdir/scandir命令或此(按glob)读取目录的详细信息,请参阅此so问题或此链接。

  • php文件以JSON对象的形式返回文件名(这里是图像名)。

  • 在客户端,Ajax响应作为JSON对象出现。

  • 完成!你在那个文件夹里有所有的图片。