返回顶部

收藏

PHP目录操作

更多
<?php
//basename()
返回路径中的文件名部分
$path="D:/lamp/apache2/htdocs/file.php";
echo basename($path)."<br>";
//显示带有文件扩展名的文件名
echo basename($path,'php')."<br>";
//显示不带文件扩展名的文件名
//dirname()
去掉文件名,返回目录名
echo dirname($path)."<br>";
//返回目录名
//pathinfo()
返回一个关于路径属性的数组
print_r(pathinfo($path))."<br>";
//opendir()
打开指定的目录
//readdir()
读取指定的目录
//closedir()
关闭指定的目录
//rewinddir()
倒回目录句柄
/*
*下面的代码来统计一个目录下的文件
*/
$num=0;
//用来统计子目录和文件的总个数
$dirname="pm3";
//定义一个目录,即需要遍历的目录 
$dir_handle=opendir($dirname);
//打开目录
//将遍历的内容和文件名使用表格格式输出
echo "<table border='0' align='center' width='600' cellspacing='0' cellpadding='0'>";
echo "<caption><h2>目录".$dirname."下的内容</h2></caption>";
echo "<tr align='left' bgcolor='#cccccc'>";
echo "<th>文件名</th><th>文件大小</th><th>文件类型</th><th>修改时间</th></tr>";
while($file=readdir($dir_handle)){
//循环读取目录里的内容,知道最后
$dirFile=$dirname."/".$file;
//使用目录名和文件名链接起来,这样在下面的filetype当中才能使用
if($num++%2==0){
//通过单复数来实现隔行变色
$bgcolor="#ffffff";
}else{
$bgcolor="#cccccc";
}
echo "<tr bgcolor='".$bgcolor."'>";
echo "<td>".$file."</td>";
//输出文件名 
echo "<td>".filesize($dirFile)."</td>";
//输出文件大小 
echo "<td>".filetype($dirFile)."</td>";
//输出文件类型
echo "<td>".filemtime($dirFile)."</td>";
//输出文件的修改时间
echo "</tr>";
}
echo "</table>";
closedir($dir_handle);
echo "<b>在目录".$dirname."下共有".$num."个文件</b><br>";
//disk_free_space()
disk_total_space() 统计磁盘大小
/*
*自定义一个递归函数,统计传入目录文件的大小
*/
function dirSize($directory){
$dir_size=0;
//定义一个整形的变量,用来累加每个文件的大小从而计算目录的大小
if($dir_handle=opendir($directory)){
//打开目录
while($fileName=readdir($dir_handle)){
//循环读取目录中的文件
if($fileName!="." &amp;&amp; $fileName!=".."){
//一定要排除掉两个特殊的目录
$subFile=$directory."/".$fileName;
//将文件名和目录名连接
if(is_dir($subFile)){
//判断子文件是否是目录
$dir_size+=dirSize($subFile);
//如果是目录,继续向下循环
}
if(is_file($subFile)){
//判断是否是普通文件
$dir_size+=filesize($subFile);
//获取文件的大小,并和前面的文件大小累加
}
}
}
}
closedir($dir_handle);
//关闭目录的句柄
return $dir_size;
}
$dir_size=dirSize("pm3");
echo "目录pm3的大小是:".round($dir_size/pow(1024,2),2)."MB";
//输出目录的大小
/*
*自定义一个删除目录的递归函数
*/
//unlink()
将目录中的文件删除掉
function delDir($directory){
if(file_exists($directory)){
//判断目录是否存在
if($dir_handle=opendir($directory)){
//打开目录
while($fileName=readdir($dir_handle)){
//循环读取目录下的文件
if($fileName!="." &amp;&amp; $fileName!=".."){
//一定要排除两个特殊文件,否则你会后悔的
$subFile=$directory."/".$fileName;
//把文件名和目录名连接起来
if(is_dir($subFile)){
//如果是目录,继续执行本身
delDir($subFile);
}
if(is_file($subFile)){
//如果是普通文件,直接删除
unlink($subFile);
}
}
}
closedir($dir_handle);
//关闭句柄 
rmdir($directory);
//运行到这的已经是空目录了,直接删除
}
}
}
//delDir("pm4");
/*
*自定义一个复制或移动目录的递归函数
*/
//copy()
复制一个普通的文件
//mkdir()
创建一个目录
function copyDir($directory,$dirTo){
//两个参数,一个是源目录,一个是目标目录
if(is_file($dirTo)){
//判断如果目标是一个普通文件,则直接退出方法
echo "目标不是一个目录,无法完成复制";
return;
}
if(!file_exists($dirTo)){
//判断如果目录不存在,则创建该目录
mkdir($dirTo);
}
if($dir_handle=opendir($directory)){
while($fileName=readdir($dir_handle)){
if($fileName!="." &amp;&amp; $fileName!=".."){
$subFile=$directory."/".$fileName;
$subToFile=$dirTo."/".$fileName;
if(is_dir($subFile)){
copyDir($subFile,$subToFile);
}
if(is_file($subFile)){
copy($subFile,$subToFile);
}
}
}
closedir($dir_handle);
}
}
copyDir("pm3","pm4");
?>

标签:php

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. likai 发表 2018-04-15 15:19:12 为何说PHP引用是个坑,要慎用
  2. Lok 发表 2018-04-10 07:19:08 php获取某个mysql数据库所有的存储过程
  3. kcloze 发表 2017-12-06 02:16:59 swoole-jobs基于swoole的job队列组件
  4. kcloze 发表 2017-12-06 02:22:34 multiprocess基于swoole的多进程管理组件
  5. 海运 发表 2018-04-03 02:17:00 php使用rpc xml管理rtorrent
  6. 堃田 发表 2017-02-27 01:13:58 CentOS 7 安装PHP开发环境
  7. 果冻想 发表 2018-04-01 15:47:25 PHP延迟静态绑定
  8. admin 发表 2018-03-31 08:12:35 Nginx 1.13.6.1 + PHP 7.1.15(FastCGI)在CentOS Linux
  9. Leon 发表 2018-03-29 15:01:29 php错误提示Fatal error: Can't use function return valu
  10. Lok 发表 2018-03-27 03:46:36 php获取mysql多个结果集返回
  11. 老高 发表 2018-03-27 06:19:00 PHP官方中文手册chm下载地址
  12. Bor Lee 发表 2018-03-02 07:14:01 PHP 里 switch case 只做松散比较

发表评论