最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php遍歷目錄與文件夾的多種方法詳解

 更新時間:2013年11月14日 09:30:19   作者:  
介紹幾個php遍歷目錄的方法,可以遍歷目錄及目錄中的文件,供大家參考

遍歷目錄或遍歷目錄下指定類型的文件,這是每一個童鞋在寫程序的時候難免會用到的。PHP本身也提供了很多灰常有用的函數(shù),正確地使用它們,不會有錯滴。
下面就我個人學(xué)習(xí)過程中的一些總結(jié),希望對想學(xué)PHP的童鞋有所幫助。
本函數(shù)可以列出指定目錄下所有的文件(包括子目錄下的)

復(fù)制代碼 代碼如下:

function getfiles($path){
foreach(scandir($path) as $afile)
{
if($afile=='.'||$afile=='..') continue;
if(is_dir($path.'/'.$afile))
{
getfiles($path.'/'.$afile);
} else {
echo $path.'/'.$afile.'<br />';
}
}
} //簡單的demo,列出當(dāng)前目錄下所有的文件
getfiles(__DIR__);
 

scandir() 是返回指定目錄下所有的文件和目錄組成的數(shù)組,在PHP中,還提供了一個灰常強(qiáng)大的函數(shù)glob(),glob()有2個參數(shù),至于第2個參數(shù)是可選的,稍后再講。 直接來看,用glob()怎么遍歷目錄的。
可以看出,glob()返回的內(nèi)容中已經(jīng)過濾掉了'.'和'..',其中*表示遍歷目錄下所有文件。相應(yīng)的,如果改為*.txt,則會遍歷目錄下所的txt文件。是不是很方便呢?它的方便之處可不止這一點,據(jù)元芳說,這里面還藏著一個天大的秘密,是什么呢?以后再說,有興趣的話,可以給我留言交流。
復(fù)制代碼 代碼如下:

function getfiles($path){
foreach(glob($path) as $afile){
if(is_dir($afile))
{ getfiles($afile.'/*'); } else { echo $afile.'<br />'; }
}
} //簡單的demo,列出當(dāng)前目錄下所有的文件
getfiles(__DIR__);0
 

既然說用 *.txt,就會遍歷目錄下所的txt文件,那如果我想讓它同時遍歷某幾種格式的文件呢?怎么辦?肯定有童鞋想到用數(shù)組了,然后很快的寫出來替換進(jìn)去{*.txt,*.jpg,*.zip,...},當(dāng)然也很快地發(fā)現(xiàn),程序返回false,什么都得不到。不要失望,這涉及到了剛才所說的第2個可選參數(shù),這個參數(shù)是用來改變glob的行為的,具體都有些什么,可以查閱PHP手冊,這里不多講,只說一個GLOB_BRACE,這是用來擴(kuò)充 {a,b,c,...} 來匹配 'a','b' 或 'c',...的。用法如下:foreach(glob($path.'/{*.txt,*.jpg,*.zip,...}', GLOB_BRACE) as $fileName){...}
至于完整的遍歷目錄下所有的指定文件類型函數(shù),我們可以看下面實例

遍歷文件夾及子文件夾所有文件

復(fù)制代碼 代碼如下:

<html>
    <body>
        <?php
            function traverse($path = '.') {
                $current_dir = opendir($path);    //opendir()返回一個目錄句柄,失敗返回false
                while(($file = readdir($current_dir)) !== false) {    //readdir()返回打開目錄句柄中的一個條目
                    $sub_dir = $path . DIRECTORY_SEPARATOR . $file;    //構(gòu)建子目錄路徑
                    if($file == '.' || $file == '..') {
                        continue;
                    } else if(is_dir($sub_dir)) {    //如果是目錄,進(jìn)行遞歸
                        echo 'Directory ' . $file . ':<br>';
                        traverse($sub_dir);
                    } else {    //如果是文件,直接輸出
                        echo 'File in Directory ' . $path . ': ' . $file . '<br>';
                    }
                }
            }

            traverse('xxtt');
        ?>
    </body>
</html>

一些常用的實例
復(fù)制代碼 代碼如下:

<?php
$dir="E:/video"; //這里輸入其它路徑
//PHP遍歷文件夾下所有文件
$handle=opendir($dir.".");
echo "文件:<br>";
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..") {
echo $file; //輸出文件名
}
}
closedir($handle);
?>
 

用了這段代碼遍歷所有文件,幫我把所有文件名存為一個數(shù)組。
復(fù)制代碼 代碼如下:

<?php
$s=explode("/n",trim(`dir/b e://video`));
print_r($s);
?>
<?php
$dir="E:/video"; //這里輸入其它路徑
//PHP遍歷文件夾下所有文件
$handle=opendir($dir.".");
echo "文件:<br>";
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..") {
$file=$file.','; //輸出文件名
$file=explode(',',$file);
}
}
print_r($file);//輸出的就是數(shù)組了
closedir($handle);
?>
<?php
$dir="."; //這里輸入其它路徑
//PHP遍歷文件夾下所有文件
$handle=opendir($dir.".");
echo "文件:<br>";
//定義用于存儲文件名的數(shù)組
$array_file = array();
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..") {
$array_file[] = $file; //輸出文件名
}
}
closedir($handle);
print_r("<pre>");
print_r($array_file);
print_r("</pre>");
?>

相關(guān)文章

  • PHP讀取PDF內(nèi)容配合Xpdf的使用

    PHP讀取PDF內(nèi)容配合Xpdf的使用

    最近領(lǐng)導(dǎo)拍腦袋想出了一個需求,要我讀取PDF里面的內(nèi)容,并且入庫存為正文,用來搜索,需要的朋友可以了解下
    2012-11-11
  • Codeigniter校驗ip地址的方法

    Codeigniter校驗ip地址的方法

    這篇文章主要介紹了Codeigniter校驗ip地址的方法,實例分析了Codeigniter獲取與校驗ip地址的技巧,需要的朋友可以參考下
    2015-03-03
  • 多個PHP中文字符串截取函數(shù)

    多個PHP中文字符串截取函數(shù)

    字符串截取是一個非常常見的編程任務(wù),而往往帶中文的字符串截取會經(jīng)常用到。雖然不難,但是自己寫函數(shù)實現(xiàn)又耗費時間,這里介紹一個比較好用的字符串截取函數(shù),能夠勝任基本的需求了
    2013-11-11
  • ThinkPHP中create()方法自動驗證表單信息

    ThinkPHP中create()方法自動驗證表單信息

    這篇文章主要為大家詳細(xì)介紹了ThinkPHP中create()方法自動驗證表單信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • PHP實現(xiàn)把文本中的URL轉(zhuǎn)換為鏈接的auolink()函數(shù)分享

    PHP實現(xiàn)把文本中的URL轉(zhuǎn)換為鏈接的auolink()函數(shù)分享

    這篇文章主要介紹了PHP實現(xiàn)把文本中的URL轉(zhuǎn)換為鏈接的auolink()函數(shù)分享,非常簡潔易用的一個函數(shù),原作者還有另外一些很Nice的PHP函數(shù),需要的朋友可以參考下
    2014-07-07
  • thinkphp5.1框架中容器(Container)和門面(Facade)的實現(xiàn)方法分析

    thinkphp5.1框架中容器(Container)和門面(Facade)的實現(xiàn)方法分析

    這篇文章主要介紹了thinkphp5.1框架中容器(Container)和門面(Facade)的實現(xiàn)方法,結(jié)合實例形式分析了thinkPHP5.1框架中容器與門面的定義、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-08-08
  • PHP文件類型檢查及fileinfo模塊安裝使用詳解

    PHP文件類型檢查及fileinfo模塊安裝使用詳解

    這篇文章主要介紹了PHP文件類型檢查及fileinfo模塊安裝使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • PHP學(xué)習(xí)記錄之?dāng)?shù)組函數(shù)

    PHP學(xué)習(xí)記錄之?dāng)?shù)組函數(shù)

    這篇文章主要介紹了PHP學(xué)習(xí)記錄之?dāng)?shù)組函數(shù),php中的數(shù)組是一個有序映射,數(shù)組可以接受任意數(shù)量用逗號分隔符的鍵值對。下面結(jié)合代碼實例給大家接受,感興趣的朋友一起看看吧
    2018-06-06
  • laravel 時間格式轉(zhuǎn)時間戳的例子

    laravel 時間格式轉(zhuǎn)時間戳的例子

    今天小編就為大家分享一篇laravel 時間格式轉(zhuǎn)時間戳的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Laravel手動分頁實現(xiàn)方法詳解

    Laravel手動分頁實現(xiàn)方法詳解

    這篇文章主要介紹了Laravel手動分頁實現(xiàn)方法,結(jié)合實例形式較為詳細(xì)的分析了Laravel手動分頁相關(guān)源碼修改與方法調(diào)用技巧,需要的朋友可以參考下
    2016-10-10

最新評論

黄梅县| 平江县| 珲春市| 亚东县| 尤溪县| 河东区| 长治市| 瓦房店市| 健康| 南平市| 磐石市| 九龙坡区| 兰西县| 清河县| 贡觉县| 蒙山县| 黄冈市| 专栏| 乌什县| 玛多县| 察隅县| 德庆县| 眉山市| 临潭县| 修水县| 大荔县| 鲜城| 安仁县| 乌兰浩特市| 永川市| 武穴市| 天峻县| 开原市| 固镇县| 宁乡县| 阳春市| 东源县| 潼关县| 天祝| 屏东市| 乐至县|