導航:首頁 > 編程語言 > php遍歷目錄函數

php遍歷目錄函數

發布時間:2023-06-18 10:19:43

php如何實現遞歸遍歷文件目錄

只需要一個遞歸函數:

functionFolders($folder){
if(!is_dir($folder))returnfalse;

foreach(scandir($folder)AS$f){
if($f=='.'or$f=='..')continue;
echo$f,'<hr/>';
Folders($folder.'/'.$f);//遞歸調用
}

}


Folders('Test');

❷ php 循環遍歷文件夾下面的所有目錄及文件並且每個文件都寫入一句話

/****************************
*獲取目錄下的所有文件
*[$dir]文件夾路徑
****************************/
functiondeepScanDir($dir){
$fileArr=array();
$dirArr=array();
$dir=rtrim($dir,'//');
if(is_dir($dir)){
$dirHandle=opendir($dir);
while(false!==($fileName=readdir($dirHandle))){
$subFile=$dir.DIRECTORY_SEPARATOR.$fileName;
if(is_file($subFile)){
$fileArr[]=$subFile;
}
elseif(is_dir($subFile)&&str_replace('.','',$fileName)!=''){
$dirArr[]=$subFile;
$arr=deepScanDir($subFile);
$dirArr=array_merge($dirArr,$arr['dir']);
$fileArr=array_merge($fileArr,$arr['file']);
}
}
closedir($dirHandle);
}
returnarray(
'dir'=>$dirArr,
'file'=>$fileArr
);
}
/****************************
*將內容寫入文件
*[$filename]文件路徑
*[$contents]文件內容
*[$type]讀寫類型
****************************/
functionwriteFileContents($filename,$contents,$type='a'){
if(!($fd=fopen($filename,$type)))
returnFALSE;

if(!fwrite($fd,$contents." ")){
fclose($fd);
returnFALSE;
}

fclose($fd);
returntrue;
}
#示例:
$dir="/usr/local/php/test/";
$dirFiles=deepScanDir($dir);
if(!empty($dirFiles['file'])){
foreach($dirFiles['file']as$file){
writeFileContents($file,"Hello",$type='a+');
}
}

❸ php寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾

最近剛寫的,可以遍歷指定目錄下的所有文件、文件夾、特定後綴的文件:

/**
*遍歷目錄
*@paramstring$dir絕對/相對路徑
*@paramstring$filter默認*返回所有文件及文件夾,*.php僅返回php文件,如果$patten為GLOB_BRACE可實現多文件篩選,如*.{php,html},返回php和html文件
*@paramconst$patten默認GLOB_BRACE,可選:GLOB_ONLYDIR,更多參數請參考手冊
*@paramstring/bool$nocache防止本次調用的結果緩存上次的結果,如果一個腳本僅調用一次本函數,則不用管,否則得設個值
*@returnarray
*/
functionglobdir($dir,$filter='*',$patten=GLOB_BRACE,$nocache=null){
static$file_arr=array();
isset($nocache)&&$file_arr=array();
if(!is_dir($dir))return;
if($patten==GLOB_ONLYDIR){
$code='if(is_dir($file)){$file_arr[]=$file;globdir($file,"*",GLOB_ONLYDIR);}';
}else{
$code='is_file($file)?$file_arr[]=$file:globdir($file,"'.$filter.'",'.$patten.');';
}
array_walk(glob("{$dir}/{$filter}",$patten),create_function('$file,$k,$file_arr',$code),&$file_arr);
if($filter!='*'){
array_walk(glob("{$dir}/*",GLOB_ONLYDIR),create_function('$dir,$k,$param','list($filter,$patten)=explode("|",$param);globdir($dir,$filter,$patten);'),"{$filter}|{$patten}");
}
return$file_arr;
}

❹ 寫一個php函數,可以遍歷目錄下面的所有文件及子文件夾並修改後綴名

可以用遞歸的方式,還有別的方式能實現

function my_dir($dir)
{
$files = array();
if (@$handle = opendir($dir)) {
while (($file = readdir($handle)) !== false) {
if ($file != ".." && $file != ".") {
if (is_dir($dir . "/" . $file)) {
$files[$file] = my_dir($dir . "/" . $file);
} else {
$files[] = $file;
}

}
}
closedir($handle);
return $files;
}
}

❺ php中寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾

if ( $handle = opendir($dir) ) {【開啟一個 代表該目錄 的句柄handle,句柄理解成一個對象就行】
while ( ($file = readdir($handle)) !== false ) {【嘗試從目錄中讀一個文件名,能讀出文件名就繼續循環,讀出false值就終止循環。整體上就是遍歷文件名】
if ( $file != ".." && $file != "." ) {【排除等於1點.和2點的..,排除上級目錄和當前目錄】
if ( is_dir($dir . "/" . $file) ) {【如果文件名是目錄就...】

❻ PHP遍歷並列印指定目錄下所有文件實例

這篇文章主要介紹了PHP遍歷並列印指定目錄下所有文件實例,需要的朋友可以參考下
代碼如下:
<?php
//功能:遍歷並列印指定目錄下所有文件

function
scan_dir($dir_name,$dir_flag=1)
{
static
$FILE_COUNT=1;

//記錄文件數目
初值為1
目錄名稱不記
$FILE_COUNT--;

//每調用一次scan_dir()函數自減1
@$dir_handle=opendir($dir_name);

//抑制錯誤信息顯示
便於自定義錯誤顯示
if(!$dir_handle)
die("目錄打開錯誤!");
while(false!==($filename=readdir($dir_handle)))
//文件名為‘0'時,readdir返回
FALSE,判斷返回值是否不全等
{

$flag=$dir_flag;

//古怪的
is_dir($filename)
!
$filename這個路徑必須能夠尋到!當$filename不存在或者不是目錄時返回false

if($filename!='.'&&$filename!='..')

{

$FILE_COUNT++;

//不記錄當前路徑和上一級路徑

while($flag>0&&--$flag)

//負數仍為真

echo
'
';

if(is_dir($dir_name.$filename))
//判斷
是否為一個目錄

{

echo
'<strong>'."<a
href=".$dir_name.$filename.">".$filename."</a></strong><br>";

scan_dir($dir_name.$filename.'/',$dir_flag+1);

//$dir_flag標志目錄樹層次

}

else

{

echo
"<a
href=".$dir_name.$filename.">".$filename."</a><br>";

}

}
}
closedir($dir_handle);

//關閉目錄句柄
echo
"文件總數:".$FILE_COUNT.'<br>';
}

scan_dir('D:wampwwwtestlamp61');
//指定的文件路徑
?>

❼ php如何遍歷目錄及子目錄

<?php
/*
* @src始源文件的地址
* @dest是目標文件的地址
* @file_permission目標文件的許可權
*/
function file($src, $dest, $file_permission = 0644) {
$src = str_replace('\\', '/', $src);
$src = str_replace('//', '/', $src);
$dest = str_replace('\\', '/', $dest);
$dest = str_replace('//', '/', $dest);

if (is_file($src) ) { //只能進行文件的復制/如想復制文件夾,自己寫方法吧
if(is_dir($dest)) {
if ($dest[ strlen($dest)-1 ] != '/') {
$__dest = $dest . "/";
}

$__dest .= basename($src);
} else {
$__dest = $dest;
}

$res = ($src, $__dest);
chmod($__dest, $file_permission);
}
}

function procrss_($dir, $file) {
$_exclude = array('.', '..', '.svn');
$d = dir($dir);

while (false !== ($entry = $d->read())) {
file($file, $dir. '/' . $entry);
if(!in_array($entry, $_exclude)) {
if(is_dir($dir . '/'.$entry)) {
procrss_($dir . '/'.$entry); //遞歸讀文件
} else {
echo $entry . "\n";
}
}
}
$d->close();
}

procrss_($newdir, 'Wring.txt');

process_你總要調用執行復制的函數吧

閱讀全文

與php遍歷目錄函數相關的資料

熱點內容
java帶參數的線程 瀏覽:911
為什麼安卓車載中控屏看起來很差 瀏覽:464
吃雞怎麼解壓最快 瀏覽:966
linux網路編程基礎 瀏覽:217
產研是程序員嗎 瀏覽:594
程序員的法律 瀏覽:969
編程第四關用冰雪火焰閃現通關 瀏覽:756
批處理當前文件夾參數 瀏覽:185
鴻蒙安卓如何下載 瀏覽:902
開3389命令 瀏覽:542
程序員大都單純嗎 瀏覽:915
APP如何實現下載功能 瀏覽:216
通達信源碼怎樣放到桌面 瀏覽:645
程序員的腦袋會禿嗎 瀏覽:455
為什麼eve登錄啟動不進去伺服器 瀏覽:272
微信招生app哪個好用 瀏覽:233
寶可夢劍盾啟動文件在哪個文件夾 瀏覽:765
壓縮機比容 瀏覽:117
python自動化測試面試 瀏覽:949
買便宜點的鞋子去哪個app買 瀏覽:890