44

如何显示指定目录中的图像?就像我想显示一个目录中的所有 png 图像一样,在我的情况下,我的目录是 media/images/iconized。

我试着环顾四周,但似乎没有一个适合我真正需要的。

但这是我的尝试。

$dirname = "media/images/iconized/";
$images = scandir($dirname);
$ignore = Array(".", "..");
foreach($images as $curimg){
    if(!in_array($curimg, $ignore)) {
        echo "<img src='media/images/iconized/$curimg' /><br>\n";
    }
}

希望这里有人可以提供帮助。我愿意接受任何想法、建议和建议,谢谢。

4

6 回答 6

96

您也可以glob为此使用:

$dirname = "media/images/iconized/";
$images = glob($dirname."*.png");

foreach($images as $image) {
    echo '<img src="'.$image.'" /><br />';
}
于 2012-08-10T14:10:25.800 回答
18

您可以使用简单的 php 脚本显示文件夹中的所有图像。假设文件夹名称为“images”并在此文件夹中放置一些图像,然后使用任何文本编辑器并粘贴此代码并运行此脚本。这是php代码

    <?php
     $files = glob("images/*.*");
     for ($i=0; $i<count($files); $i++)
      {
        $image = $files[$i];
        $supported_file = array(
                'gif',
                'jpg',
                'jpeg',
                'png'
         );

         $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));
         if (in_array($ext, $supported_file)) {
            echo basename($image)."<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />";
             echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />";
            } else {
                continue;
            }
          }
       ?>

如果您不检查图像类型,请使用此代码

<?php
$files = glob("images/*.*");
for ($i = 0; $i < count($files); $i++) {
    $image = $files[$i];
    echo basename($image) . "<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />";
    echo '<img src="' . $image . '" alt="Random image" />' . "<br /><br />";

}
?>
于 2013-07-10T16:58:14.953 回答
5

您需要将循环从更改for ($i=1; $i<count($files); $i++)for ($i=0; $i<count($files); $i++)

所以正确的代码是

<?php
$files = glob("images/*.*");

for ($i=0; $i<count($files); $i++) {
    $image = $files[$i];
    print $image ."<br />";
    echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />";
}

?>
于 2013-10-08T18:45:52.960 回答
2

如果有人正在寻找递归。

<?php

echo scanDirectoryImages("images");

/**
 * Recursively search through directory for images and display them
 * 
 * @param  array  $exts
 * @param  string $directory
 * @return string
 */
function scanDirectoryImages($directory, array $exts = array('jpeg', 'jpg', 'gif', 'png'))
{
    if (substr($directory, -1) == '/') {
        $directory = substr($directory, 0, -1);
    }
    $html = '';
    if (
        is_readable($directory)
        && (file_exists($directory) || is_dir($directory))
    ) {
        $directoryList = opendir($directory);
        while($file = readdir($directoryList)) {
            if ($file != '.' && $file != '..') {
                $path = $directory . '/' . $file;
                if (is_readable($path)) {
                    if (is_dir($path)) {
                        return scanDirectoryImages($path, $exts);
                    }
                    if (
                        is_file($path)
                        && in_array(end(explode('.', end(explode('/', $path)))), $exts)
                    ) {
                        $html .= '<a href="' . $path . '"><img src="' . $path
                            . '" style="max-height:100px;max-width:100px" /></a>';
                    }
                }
            }
        }
        closedir($directoryList);
    }
    return $html;
}
于 2014-05-04T06:53:37.720 回答
0

尝试 SPL DirectoryIterator

<?
foreach ((new DirectoryIterator("mydir/")) as $fileinfo) {
   // Ignore .files (.htaccess, .DS_Store, etc)
   if (!$fileinfo->isDot()) {
      // Check if file is a PNG
      if ($fileinfo->getExtension() == 'png') {
         echo "This is a PNG image.";
      }
   }
}
于 2021-09-23T00:12:08.133 回答
-2

严格的标准:只有变量应该通过引用在第 32 行的 /home/aadarshi/public_html/----------/upload/view.php 中传递

代码是:

<?php

echo scanDirectoryImages("uploads");

/**
* Recursively search through directory for images and display them
* 
* @param  array  $exts
* @param  string $directory
* @return string
*/
function scanDirectoryImages($directory, array $exts = array('jpeg', 'jpg', 'gif', 'png'))
{
if (substr($directory, -1) == '/') {
    $directory = substr($directory, 0, -1);
}
$html = '';
if (
    is_readable($directory)
    && (file_exists($directory) || is_dir($directory))
) {
    $directoryList = opendir($directory);
    while($file = readdir($directoryList)) {
        if ($file != '.' && $file != '..') {
            $path = $directory . '/' . $file;
            if (is_readable($path)) {
                if (is_dir($path)) {
                    return scanDirectoryImages($path, $exts);
                }
                if (
                    is_file($path)
                    && in_array(end(explode('.', end(explode('/', $path)))),   $exts)
                ) {
                    $html .= '<a href="' . $path . '"><img src="' . $path
                        . '" style="max-height:100px;max-width:100px" />  </a>';
                }
            }
        }
    }
    closedir($directoryList);
}
return $html;
}
于 2015-11-17T07:13:57.367 回答