> 백엔드 개발 > PHP 튜토리얼 > php 目录迭代器 RecursiveDirectoryIterator 怎么提高效率

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

WBOY
풀어 주다: 2016-06-13 12:00:26
원래의
1111명이 탐색했습니다.

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>
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿