我试图通过scandir函数显示目录中的所有图像,但我只得到每个文件名的第一个字母,而不是全名,以显示图片为:
<?php
$path = 'images/';
$files = scandir($path);
foreach ($files as $file) {
$x = 0;
$x_new = $x++;
echo "<img src='images/".$file[$x_new]."' >";
}
?>
在这里我得到的结果是:
<img src='images/.' >
<img src='images/.' >
<img src='images/J' >
<img src='images/J' >
<img src='images/i' >
做一个var转储给我的是:
array(5) { [0]=> string(1) "." [1]=> string(2) ".." [2]=> string(17) "Job Board New.png" [3]=> string(13) "Job Board.png" [4]=> string(9) "index.jpg" }
另外,数组中有两个.
和..
元素,我在目录中没有任何具有这些名称的文件,那么这些到底是什么?
如果你们能以正确的方式引导我,那就太好了。。!
另外,我如何获得文件的扩展名,然后使用函数做不同的事情。。!
使用trim()
删除.
,也可以使用$file
而不是$file[$x_new]
。这里的示例。。。
foreach ($files as $file) {
$name = trim($file, ' .');
if($name){
echo "<img src='images/".$name."' >";
}
}
"."directory表示当前目录。".."directory表示当前目录的父目录。这在UNIX、LINUX和Windows下很常见。
使用pathinfo读取有关文件及其类型的信息。数组索引扩展名提供文件的扩展名。
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['basename'], "'n";
echo $path_parts['extension'], "'n";