PHP 遍歷文件實(shí)現(xiàn)代碼
更新時(shí)間:2011年05月04日 01:05:28 作者:
小筆記, PHP 遍歷所有文件, 包括子目錄中的文件. 和壓縮文件的類(lèi)結(jié)合起來(lái)的話, 就可以打包整個(gè)目錄了.
復(fù)制代碼 代碼如下:
function Files($path)
{
foreach(scandir($path) as $line)
{
if($line=='.'||$line=='..') continue;
if(is_dir($path.'/'.$line)) Files($path.'/'.$line);
else echo '<li>'.$path.'/'.$line.'</li>';
}
}
PHP遍歷文件及文件夾
加入給定文件夾 C:\\Windows\\AppPatch
1.首先獲取這個(gè)文件夾下面的所有東西,也就是文件,文件夾,放一個(gè)數(shù)組里面
$fileArr = array(
'files' => array(), //文件放一個(gè)數(shù)組
'dirs' => array(), //文件夾放一個(gè)數(shù)組
)
2.如果存在子文件夾,遍歷子文件夾,獲取文件夾和文件,同樣放進(jìn)那個(gè)數(shù)組,如此循環(huán),一個(gè)不漏
復(fù)制代碼 代碼如下:
<?php
$dir = 'F:\\game';
function read_dir_all($dir) {
$ret = array('dirs'=>array(), 'files'=>array());
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if($file != '.' && $file !== '..') {
$cur_path = $dir . DIRECTORY_SEPARATOR . $file;
if(is_dir($cur_path)) {
$ret['dirs'][$cur_path] = read_dir_all($cur_path);
} else {
$ret['files'][] = $cur_path;
}
}
}
closedir($handle);
}
return $ret;
}
$p = read_dir_all($dir);
echo '<pre>';
var_dump($p);
echo '</pre>';
?>
php遍歷一個(gè)文件夾下的所有目錄及文件
在面試中我們經(jīng)常遇到這個(gè)題目:php遍歷一個(gè)文件夾下的所有文件和子文件夾。
這個(gè)題目有好多種解決方法。但大致思路都一樣。采用遞歸。
復(fù)制代碼 代碼如下:
$path = './filepath';
function getfiles($path)
{
if(!is_dir($path)) return;
$handle = opendir($path);
while( false !== ($file = readdir($handle)))
{
if($file != '.' && $file!='..')
{
$path2= $path.'/'.$file;
if(is_dir($path2))
{
echo ' ';
echo $file;
getfiles($path2);
}else
{
echo ' ';
echo $file;
}
}
}
}
print_r( getfiles($path));
echo '<HR>';
function getdir($path)
{
if(!is_dir($path)) return;
$handle = dir($path);
while($file=$handle->read())
{
if($file!='.' && $file!='..')
{
$path2 = $path.'/'.$file;
if(is_dir($path2))
{
echo $file."\t";
getdir($path2);
}else
{
echo $file.' ';
}
}
}
}
getdir($path);
echo '<HR>';
function get_dir_scandir($path){
$tree = array();
foreach(scandir($path) as $single){
if($single!='.' && $single!='..')
{
$path2 = $path.'/'.$single;
if(is_dir($path2))
{
echo $single."\r\n";
get_dir_scandir($path2);
}else
{
echo $single."\r\n";
}
}
}
}
get_dir_scandir($path);
echo '
<HR>';
function get_dir_glob(){
$tree = array();
foreach(glob('./curl/*') as $single){
echo $single."\r\n";
}
}
get_dir_glob();
echo '
<HR>';
function myscandir($path)
{
if(!is_dir($path)) return;
foreach(scandir($path) as $file)
{
if($file!='.' && $file!='..')
{
$path2= $path.'/'.$file;
if(is_dir($path2))
{
echo $file;
myscandir($path2);
}else
{
echo $file.' ';
}
}
}
}
myscandir($path);
echo '<HR>';
function myglob($path)
{
$path_pattern = $path.'/*';
foreach(glob($path_pattern) as $file)
{
if(is_dir($file))
{
echo $file;
myscandir($file);
}else
{
echo $file.' ';
}
}
}
myglob($path);
相關(guān)文章
php無(wú)限極分類(lèi)實(shí)現(xiàn)方法分析
這篇文章主要介紹了php無(wú)限極分類(lèi)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了兩種無(wú)限極分類(lèi)的具體實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-07-07php指定長(zhǎng)度分割字符串str_split函數(shù)用法示例
這篇文章主要介紹了php指定長(zhǎng)度分割字符串str_split函數(shù)用法,結(jié)合實(shí)例形式分析了str_split函數(shù)分割字符串的具體操作技巧,需要的朋友可以參考下2017-01-01PHP實(shí)現(xiàn)的限制IP投票程序IP來(lái)源分析
這篇文章主要介紹了PHP實(shí)現(xiàn)的限制IP投票程序,針對(duì)投票程序中客戶端IP的判斷方法進(jìn)行了深入分析,并給出了偽造IP的方法供大家參考了解,需要的朋友可以參考下2016-05-05PHP pthreads v3在centos7平臺(tái)下的安裝與配置操作方法
這篇文章主要介紹了PHP pthreads v3在centos7平臺(tái)下的安裝與配置操作方法,結(jié)合圖文與實(shí)例形式分析了PHP pthreads v3在centos7平臺(tái)下的安裝與配置操作具體步驟、相關(guān)命令與注意事項(xiàng),需要的朋友可以參考下2020-02-02PHP中set_include_path()函數(shù)相關(guān)用法分析
這篇文章主要介紹了PHP中set_include_path()函數(shù)相關(guān)用法,結(jié)合實(shí)例形式分析了php針對(duì)文件路徑設(shè)置的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07