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
简而言之,我当前使用的代码只显示目录中每个文件的名称。我希望它显示目录中每个文件的名称,但是,如果目录中有图像,而不是回显图像的文件名,它会显示图像。
答案 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.'">';