这一两个月来到新公司 刚好赶上项目进度,加班有点多,忘了记录点什么。。刚刚商品上传扫描 这块用上了之前研究的 目录相关技巧的 知识,很开心;当然下一期的 迭代器的讲解更有意思 ^-^;
传统扫描目录(我基本弃用了):
/**********************
一个简单的目录递归函数
第一种实现办法:用dir返回对象
***********************/
function tree($directory)
{
$mydir = dir($directory);
echo "<ul>\n";
while($file = $mydir->read())
{
if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!=".."))
{
echo "<li><font color=\"#ff00cc\"><b>$file</b></font></li>\n";
tree("$directory/$file");
}
else
echo "<li>$file</li>\n";
}
echo "</ul>\n";
$mydir->close();
}
第二种:php5.4 更新的,比较好用,遍历目录
/**
* @desc 使用扫描目录函数来遍历
* @Author FredGui
* @param string $path
*/
function dirList($path = '/var/www/html/guimm/test'){
foreach(scandir($path) as $i => $mod)
{
if(is_dir('/var/www/html/guimm/test/'.$mod) && !in_array($mod,['.','..']))
{
test1('/var/www/html/guimm/test/'.$mod);
echo '目录是:'. $mod . "<br/>";
}else{
$files[$i] = $mod;
echo '文件:'. $mod . "<br/>";
}
}
}
最后一种 我现在 用的,迭代器,他的好处就不多说了,下一期博客 会讲解相关的迭代器原理
/**
* @desc 遍历目录,用文件系统迭代器
* @Author FredGui
* @param string $path
*/
function fileList( $path = '/var/www/html/guimm/test'){
$file = new FilesystemIterator($path);
foreach ($file as $fileinfo) {
/** @var $fileinfo SplFileInfo */
if($fileinfo->isFile()){
echo $fileinfo -> getFilename() . "<br/>";
}elseif($fileinfo->isDir()){
echo $fileinfo->getPathname() . "<br/>";
fileList($fileinfo->getPathname());
}
}
}