php对文件夹进行相关操作(遍历、计算大小),_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:/AppServ/www/mytest/shopping/payment/'); /*总结: 1,关于路径 目录的路径末尾都加上 '/' 以便后面与文件名字符串连接 形成新的 路径字符串 2,目录遍历 这是一个关于树的问题 3,is_dir()函数第一个参数必须是一个能够识别的PATH否则会因目录不存在而返回一个false容易误解 得出 “这不是一个目录”的错误结论 形成逻辑上的错误 4,注意当前路径'.'和上一级路径'..'的剔除 否则 在递归环节造成死循环 直至内存耗尽出错。 5,dir_flag这个变量是记录树的深度 以便于目录分级分层输出 */ /*不足 1,输出排版不完善 2,逻辑与表示层混乱 不分明 大忌! 3,面向过程 */
#####单目录#####
// 列出目录内容 $dir 不要加 '/' function list_files($dir) { if(is_dir($dir)) { if($handle = opendir($dir)) { while(($file = readdir($handle)) !== false) { if($file != "." && $file != ".." && $file != "Thumbs.db") { echo '<a href="'.$dir.'/'.$file.'">'.$file.'</a><br>'."\n"; } } closedir($handle); } } } list_files('D:/AppServ/www/mytest/shopping/payment');
PHP 对文件进行的第二个操作内容:获得文件夹大小 计算文件
<?php function getDirSize($dir) { $handle = opendir($dir); while (false!==($FolderOrFile = readdir($handle))) { if($FolderOrFile != "." && $FolderOrFile != "..") { if(is_dir("$dir/$FolderOrFile")) { $sizeResult += getDirSize("$dir/$FolderOrFile"); } else { $sizeResult += filesize("$dir/$FolderOrFile"); } } } closedir($handle); return $sizeResult; } //单位自动转换函数 function getRealSize($size) { $kb = 1024; //Kilobyte $mb = 1024 * $kb; //Megabyte $gb = 1024 * $mb; //Gigabyte $tb = 1024 * $gb; //Terabyte if($size < $kb) { return $size." B"; } else if($size < $mb) { return round($size/$kb,2)." KB"; } else if($size < $gb) { return round($size/$mb,2)." MB"; } else if($size < $tb) { return round($size/$gb,2)." GB"; } else { return round($size/$tb,2)." TB"; } } echo getRealSize(getDirSize('D:/AppServ/www/mytest/')); // get byte function dirsize($dir) { $handle=opendir($dir); $size = 0; while ( $file=readdir($handle) ) { if ( ( $file == "." ) || ( $file == ".." ) ) continue; if ( is_dir("$dir/$file") ) $size += dirsize("$dir/$file"); else $size += filesize("$dir/$file"); } closedir($handle); return $size; } $big=dirsize(dirname($_SERVER['SCRIPT_FILENAME'])."/"); echo '('.$big.' bytes)';
以上就是关于php对文件夹的进行的基本操作,希望对大家的学习有所帮助。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.
