如何从文件夹中逐个获取图片并使用PHP在页面中显示

时间:2009-08-01 03:59:13

标签: php image

如何从文件夹中获取图像并将其显示在页面中,是否可以在php中调整大小,或者我必须调整大小并上传它以便以缩略图的形式显示它?

5 个答案:

答案 0 :(得分:11)

这是遍历目录并对图像文件执行某些操作的基本结构(给定'images'是脚本同一目录中的目录)

$image_types = array(
    'gif' => 'image/gif',
    'png' => 'image/png',
    'jpg' => 'image/jpeg',
);

foreach (scandir('images') as $entry) {
    if (!is_dir($entry)) {
        if (in_array(mime_content_type('images/'. $entry), $image_types)) {
            // do something with image
        }
    }
}

从这里,您可以将图像直接发送到浏览器,为HTML页面生成标签或使用GD functions创建缩略图并存储它们以供显示。

答案 1 :(得分:7)

我认为这可能会对你有帮助!

<?
$string =array();
$filePath='directorypath/';  
$dir = opendir($filePath);
while ($file = readdir($dir)) { 
   if (eregi("\.png",$file) || eregi("\.jpg",$file) || eregi("\.gif",$file) ) { 
   $string[] = $file;
   }
}
while (sizeof($string) != 0){
  $img = array_pop($string);
  echo "<img src='$filePath$img'  width='100px'/>";
}
?>

答案 2 :(得分:2)

eregi现已弃用,因此您可以使用preg_match代替

<?php
$string =array();
$filePath='directorypath/';  
$dir = opendir($filePath);
while ($file = readdir($dir)) { 
   if (preg_match("/.png/",$file) || preg_match("/.jpg/",$file) || preg_match("/.gif/",$file) ) { 
   $string[] = $file;
   }
}
while (sizeof($string) != 0){
  $img = array_pop($string);
  echo "<img src='$filePath$img' >";
}
?>

答案 3 :(得分:1)

答案 4 :(得分:1)

这是一个基于another answer的单行代码来表达类似的问题:

// this will get you full path to images file.
$data = glob("path/to/images/*.{jpg,gif,png,bmp}", GLOB_BRACE);

// this will get you only the filenames
$data= array_map('basename', $data);

最初,我想使用@Imran solution,但mime_content_type无法使用,服务器(我无法控制)使用旧版本的Apache和Php。

所以我改为使用文件扩展名进行了一些改编,我在这里给出了它。

$imgDir = "images_dir";

// make sure it's a directory
if (file_exists($imgDir)) {

    // select the extensions you want to take into account
    $image_ext = array(
            'gif',
            'png',
            'jpg',
            'jpeg'
    );

    foreach (scandir($imgDir) as $entry) {
        if (! is_dir($entry)) { // no need to weed out '.' and '..'
            if (in_array(
                    strtolower(pathinfo($entry, PATHINFO_EXTENSION)), 
                    $image_ext)) {

                // do something with the image file.
            }
        }
    }
}

代码经过测试并正在运行。