手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

php 使用glob遍历时的注意事项[原创]

首页 > PHP >

PHP中使用glob递归是一个很方便的事情,如下:

PHP代码
  1. function read ( $dirname )  
  2. {  
  3.     static $dInfo;  
  4.     $dirname .= subStr$dirname, -1 ) == "/"  ? "" : "/";  
  5.     $dirInfo = glob$dirname . "*" );  
  6.     foreach ( $dirInfo as $info ){  
  7.         $dInfo[] = $info;  
  8.         if ( is_dir$info ) ){  
  9.             if ( !is_readable$info ) ){  
  10.                 chmod$info, 0777 );  
  11.             }  
  12.             read( $info );  
  13.         }  
  14.     }  
  15.     return $dInfo;  
  16. }  
当然用dir函数也可以:

PHP代码
  1. function read ( $dirname )  
  2. {  
  3.     static $dInfo;  
  4.     $d = dir( $dirname );  
  5.     if ( $d ){  
  6.         while ( false !== ($entry = $d->read() ) ){  
  7.             if$entry != '.' && $entry != '..' ){  
  8.                 $entry = $dirname . '/' . $entry ;  
  9.                 $dInfo[] = $entry ;  
  10.                 ifis_dir$entry )){  
  11.                     if ( !is_readable$entry ) ){  
  12.                         chmod$entry, 0777 );  
  13.                     }  
  14.                     //$timeInfo[] = filemtime( $entry );  
  15.                     read( $entry );  
  16.                 }  
  17.             }  
  18.         }  
  19.     }  
  20.     return $dInfo;  
  21. }  
嗯。看上去没有什么问题。但是有一个情况需要注意

在linux下面,目录名可以为".aa",最典型的例子就是svn目录,svn目录里大量的".svn"的目录,好象,在linux下面,这样以"."开头的目录,默认是隐藏目录,不显示的。

所以,在使用glob的时候,这样的目录是认不出来的。这点要千万注意

做个笔记。




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: glob

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):