首页 / PHP / PHP文件系统操作常用函数
PHP文件系统操作常用函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP文件系统操作常用函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5026字,纯文字阅读大概需要8分钟。
内容图文
虽然PHP提供很多内置的文件处理函数,但是分得特别细,有一些操作需要多个函数一起使用才能达到目标,比如删除非空文件夹的所有内容,遍历文件夹等功能,下面各个函数是学习的时候整理的,有的是教程里的,有的是自己想的,可以直接调用,免得自己再次写一遍,,本人是PHP菜鸟,一定存在很多bug,如果你愿意,非常欢迎留言,我收到留言后再修改。
1 /* * 2 * [以文字形式返回文件的类型] 3 * @param [type] $filename [description] 4 * @return [type] [description] 5 */ 6 function getfiletype($filename){ 7$type=filetype($filename); 8switch($type){ 9case "dir": 10echo "this is a dir<br>"; 11break; 12case "file": 13echo "this is a file<br>"; 14break; 15case "unknown": 16echo "can‘t know the file<br>"; 17break; 18 } 19 }
1 /* * 2 * [返回格式化后的文件大小] 3 * @param [type] $size [description] 4 * @return [type] [description] 5 */ 6 function transfer_filesize($size){ 7if($size>=pow(2,40)){ 8returnceil($size/pow(2,40))."TB"; 9 } elseif($size>=pow(2,30)){ 10returnceil($size/pow(2,30))."GB"; 11 } elseif($size>=pow(2,20)){ 12returnceil($size/pow(2,20))."MB"; 13 } elseif($size>=pow(2,10)){ 14returnceil($size/pow(2,10))."KB"; 15 } else { 16return$size."B"; 17 } 18 }
1 /* * 2 * [获取文件夹或者文件的属性,包含文件类型及大小] 3 * @param [type] $filename [description] 4 * @return [type] [description] 5 */ 6 function getfilepro($filename){ 7if(file_exists($filename)){ 8echo "the file is exists<br>"; 9 getfiletype($filename); 10echo "the file size is ".transfer_filesize(filesize($filename))."<br>"; 11 } else { 12echo "the file is not exists<br>"; 13 } 14 }
1 /* * 2 * [遍历整个文件夹] 3 * @param [string] $file [需要遍历的文件夹名或文件名] 4 * @return [type] [description] 5 */ 6 function show_all_files($file){ 7$dir=opendir($file); 8while($filename=readdir($dir)){ 9if($filename!=‘.‘ && $filename!=‘..‘){ 10$filename=$file."/".$filename; 11if(is_dir($filename)){ 12echo "目录".$filename."<br>"; 13 show_all_files($filename); 14 } else{ 15echo "文件".$filename."<br>"; 16 } 17 } 18 } 19closedir($dir); 20 } 21 show_all_files("./class");
1 /* * 2 * [获取一个磁盘或者分区的总容量和剩余容量] 3 * @param [string] $disk [description] 4 * @return [array] [可取消注释,返回一个包含两个值的数组] 5 */ 6 function get_disk_space($disk){ 7$total_space=transfer_filesize(disk_total_space($disk)); 8$free_space=transfer_filesize(disk_free_space($disk)); 9echo$disk."盘总容量为:".$total_space."<br>"; 10echo$disk."盘可用容量为:".$free_space."<br>"; 11returnarray($total_space,$free_space); 12 } 13 get_disk_space("C:");
1 /* * 2 * [目录总数,文件总数,及目录总大小] 3 * @param [string] $filename [目录名] 4 * @return [array] [返回该目录的目录总数,文件总数,及目录总大小] 5 */ 6 function get_all_nums($filename){ 7$total_size=0; 8$total_dir_nums=0; 9$total_file_nums=0; 10function get_nums($filename){ 11global$total_dir_nums,$total_file_nums,$total_size; 12$dir=opendir($filename); 13while($file=readdir($dir)){ 14if($file!="." && $file!=".."){ 15$file=$filename."/".$file; 16if(is_dir($file)){ 17 get_nums($file); 18$total_dir_nums++; 19 } else { 20$total_file_nums++; 21$total_size+=filesize($file); 22 } 23 } 24 } 25closedir($dir); 26returnarray($total_dir_nums,$total_file_nums,$total_size); 27 } 28list($dir,$file,$size)=get_nums($filename); 29echo "文件数为:".$file."<br>"; 30echo "目录数为:".$dir."<br>"; 31echo "总大小为:".transfer_filesize($size)."<br>"; 32 } 33 get_all_nums("./class");
1 /* * 2 * [删除一个非空的目录或文件] 3 * @param [string] $filename [要删除的目录或文件名] 4 * @return [null] [null] 5 */ 6 function delete_dir($filename){ 7if(!file_exists($filename)){ 8die("不存在该目录"); 9 } 10if(is_file($filename)){ 11unlink($filename); 12echo "成功删除文件".$file."<br>"; 13 } 14$dir=opendir($filename); 15while($file=readdir($dir)){ 16if($file!="." && $file!=".."){ 17$file=$filename."/".$file; 18if(is_dir($file)){ 19 delete_dir($file); 20 } else { 21unlink($file); 22echo "成功删除文件".$file."<br>"; 23 } 24 } 25 } 26closedir($dir); 27rmdir($filename); 28echo "成功删除目录".$filename."<br>"; 29 } 30 delete_dir("./aaaa");
1 /* * 2 * [用来拷贝一个目录] 3 * @param [string] $dir_src [源目录] 4 * @param [string] $dir_dest [目标目录] 5 * @return [null] [description] 6 */ 7 function copy_dir($dir_src,$dir_dest){ 8if(!file_exists($dir_src)){ 9die("源文件不存在<br>"); 10 } 11if(!file_exists($dir_dest)){ 12mkdir($dir_dest); 13 } 14$dir=opendir($dir_src); 15while($file=readdir($dir)){ 16if($file!="." && $file!=".."){ 17$src_file=$dir_src."/".$file; 18$dest_file=$dir_dest."/".$file; 19if(is_dir($src_file)){ 20 copy_dir($src_file,$dest_file); 21 } else { 22copy($src_file,$dest_file); 23 } 24 } 25 } 26closedir($dir); 27 } 28 copy_dir("../aaaa","./bbbb");
1 /* * 2 * [逐个字符读出文件所有内容] 3 * @param [string] $filename [要读的文件名] 4 * @return [null] [description] 5 */ 6 function get_contents_one($filename){ 7$fp=fopen($filename,"r"); 8while(!feof($fp)){ 9echofgetc($fp); 10 } 11echo "<br>"; 12fclose($fp); 13 } 14 get_contents_one("bbb.txt");
1 /* * 2 * [逐行读出文件所有内容] 3 * @param [string] $filename [要读的文件名] 4 * @return [null] [description] 5 */ 6 function get_contents_two($filename){ 7$fp=fopen($filename,"r"); 8while(!feof($fp)){ 9echofgets($fp); 10 } 11echo "<br>"; 12fclose($fp); 13 } 14 get_contents_two("bbb.txt");
原文:http://www.cnblogs.com/-beyond/p/7204543.html
内容总结
以上是互联网集市为您收集整理的PHP文件系统操作常用函数全部内容,希望文章能够帮你解决PHP文件系统操作常用函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。