首頁 > 後端開發 > php教程 > php 目录迭代器 RecursiveDirectoryIterator 怎么提高效率

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

WBOY
發布: 2016-06-13 12:00:26
原創
1120 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板