遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环。
<?php<BR>/**<BR>* @param string $dir<BR>* @return array<BR>*/<BR>function my_scandir($dir)<BR>{<BR> $files = array();<BR> if ( $handle = opendir($dir) ) {<BR> while ( ($file = readdir($handle)) !== false ) <BR> {<BR> if ( $file != ".." && $file != "." ) <BR> {<BR> if ( is_dir($dir . "/" . $file) ) <BR> {<BR> $files[$file] = my_scandir($dir . "/" . $file);<BR> }<BR> else <BR> {<BR> $files[] = $file;<BR> }<BR> }<BR> }<BR> closedir($handle);<BR> return $files;<BR> }<BR>}</P><P>function my_scandir1($dir)<BR>{<BR> $files = array();<BR> $dir_list = scandir($dir);<BR> foreach($dir_list as $file)<BR> {<BR> if ( $file != ".." && $file != "." ) <BR> {<BR> if ( is_dir($dir . "/" . $file) ) <BR> {<BR> $files[$file] = my_scandir1($dir . "/" . $file);<BR> }<BR> else <BR> {<BR> $files[] = $file;<BR> }<BR> }<BR> }<br><br> return $files;<BR>}</P><P>$result = my_scandir('./');<BR>$result = my_scandir1('./');<BR>?><BR>
另一个实现方法
function fetchDir($dir) { <BR> foreach(glob($dir.'\*') as $file) { <BR> echo $file,"\n"; <BR> if(is_dir($file)) { <BR> fetchDir($file); <BR> } <BR> } <BR> } <BR> fetchDir("D:\wamp\www\any<span>%本文来源gaodai#ma#com搞*代#码9网#</span><strong>搞gaodaima代码</strong>"); <BR>
还可以把‘*’, 换成 DIRECTORY_SEPARATOR.’*’ ,把‘’换成PHP_EOL ,这样可以跨平台了。