首页  >  文章  >  后端开发  >  php 目录迭代器 RecursiveDirectoryIterator 怎么提高效率

php 目录迭代器 RecursiveDirectoryIterator 怎么提高效率

WBOY
WBOY原创
2016-06-13 12:00:261056浏览

php 目录迭代器 RecursiveDirectoryIterator 如何提高效率
迭代器方式
echo '程序开始时间:'.time().'
';
$path = 'd:/www';
getRevDir($path);
echo '程序结束时间:'.time().'
';
exit;
echo '

';<br>	//获取当前路径下所有的目录和文件名<br>	//这种用法主要是用在获取远程服务器目录的B/S程序中<br>	var_dump(array_keys(iterator_to_array(new RecursiveDirectoryIterator($path))));	<br>	exit;<br>	<br>	//迭代获取当前路径下所有的目录和文件<br>	function getRevDir($path, $level = 0){<br>		$dirIterator = new RecursiveDirectoryIterator($path);<br>		$strSplitBar = '';<br>		for($i=0;$i			if($i == $level-1){<br>				$strSplitBar .= '|__';<br>			}else{<br>				$strSplitBar .= '  ';<br>			}<br>		}		<br>		foreach ($dirIterator as $key => $fileInfo){<br>			if($dirIterator->hasChildren()){				<br>				$dirName = substr($key,strrpos($key, DIRECTORY_SEPARATOR)+1);<br>				echo $strSplitBar.$dirName.'<br>';<br>				getRevDir($key, $level+1);<br>			}else{				<br>				echo $strSplitBar.basename($key).'<br>';<br>			}			<br>		}<br>	}<br>执行结果<br>程序开始时间:1402624676<br>程序结束时间:1402624682<br><br>opendir 方式<br><?php <br />	echo '程序开始时间:'.time().'<br>';<br>	$path = 'd:/www';<br>	getRevDir($path);<br>	echo '程序结束时间:'.time().'<br>';<br>	exit;	<br>	echo '<pre class="brush:php;toolbar:false">';<br>	//获取当前路径下所有的目录和文件名<br>	//这种用法主要是用在获取远程服务器目录的B/S程序中<br>	var_dump(array_keys(iterator_to_array(new RecursiveDirectoryIterator($path))));	<br>	exit;<br>	<br>	//迭代获取当前路径下所有的目录和文件<br>	function getRevDir($path, $level = 0){<br>		$dirIterator = new RecursiveDirectoryIterator($path);<br>		$strSplitBar = '';<br>		for($i=0;$i			if($i == $level-1){<br>				$strSplitBar .= '|__';<br>			}else{<br>				$strSplitBar .= '  ';<br>			}<br>		}		<br>		foreach ($dirIterator as $key => $fileInfo){<br>			if($dirIterator->hasChildren()){				<br>				$dirName = substr($key,strrpos($key, DIRECTORY_SEPARATOR)+1);<br>				echo $strSplitBar.$dirName.'<br>';<br>				getRevDir($key, $level+1);<br>			}else{				<br>				echo $strSplitBar.basename($key).'<br>';<br>			}			<br>		}<br>	}<br><br>执行结果<br>程序开始时间:1402624679<br>程序结束时间:1402624682<br>时间相差好大.<br><font color="#FF8000">------解决方案--------------------</font><br>遍历整个网站目录才 3 秒钟,够快的了<br><font color="#FF8000">------解决方案--------------------</font><br>遍历的效率也就这样了吧。<br>要不用Linux命令获取目录树再处理看看。<div class="clear">
                 
              
              
        
            </div>
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn