如何将目录中的图像和文件回显到页面php上

时间:2015-01-23 17:22:04

标签: php file directory echo

if ($handle = opendir('.')) {

    while (false !== ($entry = readdir($handle))) {

        if ($entry != "." && $entry != ".." && !in_array($entry, $blacklist)) {
            echo "<p>$entry\n</p>";
        } 


    }

    closedir($handle);
}

上面是我用来回显目录中所有文件的PHP代码。它工作正常,但页面回应了这个:

example.html的

test.php的

image.png

mobile.html

的text.txt

image2.jpg


如何使目录中的文件成为图像,将其显示为图像而不是文本。例如,页面将显示出来:


example.html的

test.php的

http://media.treehugger.com/assets/images/2011/10/toyota-iq-small-car-001.jpg

mobile.html

的text.txt


简而言之,我当前使用的代码只显示目录中每个文件的名称。我希望它显示目录中每个文件的名称,但是,如果目录中有图像,而不是回显图像的文件名,它会显示图像。

2 个答案:

答案 0 :(得分:1)

如果您只想获取图像,这应该适合您:

<?php

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

?>

(注意文件扩展名之间没有空格,否则它不起作用)

如果您希望所有文件都使用此功能:

foreach(glob("*.*") as $file) {

    if(in_array(pathinfo($file, PATHINFO_EXTENSION), array("jpg", "png", "jpeg", "gif")))
        echo "<img src='" . $file . "' />";
    else
        echo $file . "<br />";
}

有关glob()的详情,请参阅手册:http://php.net/manual/en/function.glob.php

答案 1 :(得分:0)

试试这个:

if ($handle = opendir('.')) {

    $valid_image = array("jpg", "jpeg", "png", "gif");

    while (false !== ($entry = readdir($handle))) {

        if ($entry != "." && $entry != ".." && !in_array($entry, $blacklist)) {

            $exploded = explode('.', $entry);

            if(in_array(end($exploded), $valid_image))
            {
                 echo '<img src="'.$entry.'">';
            }
            else
            {
                echo "<p>$entry\n</p>";
            }
        } 
    }
    closedir($handle);
}

注意发布有效的图片路径,如:

echo '<img src="http://example.com/images/'.$entry.'">';