2008年6月17日,一天的存档

进化(Linux商业)

1 commento » 杂项YouTube的 1条评论»

递归扫描目录与PHP

Nessun commento » 开源PHP中提示和技巧 没有评论»

有脚本,你应该总是手头上有,因为它结束了,你在最意想不到的时刻和场合的需要。 这个函数在PHP中,例如,保存在许多情况下,我作为参数传递一个字符串,它是完整的路径扫描scan_directory_recursively函数返回一个数组,包含指定的目录结构完整的不必要的时间浪费。

你可以表明,作为第二个可选参数,延长或不一定会出现在文件名的文本部分。 这基本上是一个过滤器,以排除某些类的结果。

例如:

$dirs=scan_directory_recursively('/home/ivan/Tempo');

返回一个数组的所有目录和文件在/ home /伊万/时间,而:

$dirs=scan_directory_recursively('/home/ivan/Tempo','.php');

除了为扩展名的文件返回数组的所有目录和文件在/ home /伊万/时间。PHP!

这不是我做的,为什么我问这些人在自己的项目使用不删除引用lixlpixel,从他们来的互联网网站。

这里的功能:


 <?腓

 / /递归的PHP函数------------------------- lixlpixel

 / / Scan_directory_recursively的(目录扫描,过滤器)

 / /预计的目录路径和一个可选扩展到过滤

 / /当然,PHP中有权限读取目录

 / /指定你和这个目录里面的所有文件和文件夹

 / / ------------------------------------------------ ------------


 / /要使用这个函数来获取数组中的所有文件和目录,写:

 / / $ Filestructure scan_directory_recursively =('路径/ /目录');


 / /要使用此功能来扫描目录和筛选的结果,写:

 / / $ FileSelection scan_directory_recursively =('目录','扩展');


 scan_directory_recursively功能($目录,过滤器= FALSE)

 {
    
 / /如果路径上有一个斜线结束,我们在这里删除
    
如果(SUBSTR($目录,-1)=='/')
    
 {
        
 $目录= SUBSTR($目录,0,-1);
    
 }

    
 / /如果路径是不正确或不是一个目录...
    
如果(file_exists($目录)| |!is_dir($目录))
    
 {
        
 / / ... 
我们返回false,退出功能
        
返回FALSE;

    
 / / ... 
否则,如果路径是可读
    
 ELSEIF(is_readable(目录))
    
 {
        
 / /我们打开目录
        
美元Directory_list =执行opendir($目录);

        
 / /通过内部项目和扫描
        
 (FALSE! ==($文件= READDIR($ directory_list)))
        
 {
            
 / /如果文件指针是不是当前目录
            
 / /或父目录
            
如果($ ='。'&& $文件='..')
            
 {
                
 / /我们建设的新路径扫描
                
 $路径= $目录'/'$文件。;

                
 / /如果路径是可读
                
如果(is_readable($ PATH))
                
 {
                    
 / /我们分裂目录的新路径
                    
 $子目录=爆炸('/',$ PATH);

                    
 / /如果新的路径是一个目录
                    
如果(is_dir($ PATH))
                    
 {
                        
 / /添加目录内容的文件列表
                        
美元Directory_tree [] =阵列(
                            
 “路径”=> $路径,
                            
 '名称'=>结束(子目录),
                            
 '类'=>'目录',

                            
 / /我们调用这个函数扫描的新路径
                            
 “内容”=> scan_directory_recursively($路径,过滤美元));

                    
 / /如果新的路径是一个文件
                    
 ELSEIF(is_file($ PATH))
                    
 {
                        
 / /获取最后一个点后,采取一切文件扩展名
                        
美元扩建结束(爆炸(完(子目录))'。');

                        
 / /如果没有在九月的过滤器或过滤器的设置和火柴
                        
 (过滤===假| |过滤== $扩展)
                        
 {
                            
 / /添加文件的详细文件列表
                            
美元Directory_tree [] =阵列(
                                
 “路径”=> $路径,
                                
 '名称'=>结束(子目录),
                                
 '扩展'=> $延长,
                                
 '大小'=>大小($ PATH)
                                
 '类'=>'文件');
                        
 }
                    
 }
                
 }
            
 }
        
 }
        
 / /关闭目录
        
 closedir($ directory_list); 

        
 / /返回文件列表
        
返回directory_tree;

    
 / /如果路径是无法读取...
    
否则{}
        
 / / ... 
我们返回false
        
返回FALSE;
    
 }

 }

 / / ------------------------------------------------ ------------


 ?>

为了您的方便,但也有我自己,我在这里补充一个没有意见的版本和可供下载: