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对文件夹的进行的基本操作,希望对大家的学习有所帮助。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。