PHP中目录操作函数
PHP中目录操作函数
1、是否是目录
is_dir 判断给定文件名是否是一个目录
$path = dirname(__FILE___);
echo is_dir($path) ? '目录' : '非目录';
2、获取当前的工作目录
getcwd()
echo getcwd(); ///mnt/hgfs/study.com/file
3、相关魔术常量
__FILE__
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
自 PHP 4.0.2 起,FILE 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
<?php
echo '该文件位于 " ' . __FILE__ . ' " ';
//输出E:\wamp\www\test\index.php
?>
__DIR__
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。
<?php
echo '该文件位于 " ' . __DIR__ . ' " ';
//输出E:\wamp\www\test
?>
4、磁盘空间
只对磁盘根目录起作用
- 当前磁盘的总空间 disk_total_space(
$directory) - 当前磁盘的剩余空间 disk_free_space(
$directory)
5、创建目录
mkdir()
6、删除空目录
rmdir()
7、读目录句柄
$rHandle = opendir($path);
$filename = readdir($rHandle)
8、重置指针
$rHandle = opendir($path);
$filename = readdir($rHandle);
var_dump($filename);
$filename = readdir($rHandle);
var_dump($filename);
$filename = readdir($rHandle);
var_dump($filename);
rewinddir($rHandle); //指针初始化
$filename = readdir($rHandle);
var_dump($filename);
9、复制目录
copy
剪切目录
copy + rmdir
10、重命名目录
rename rmdir
11、关闭目录句柄
closedir
12、chdir() 函数改变当前的目录
13、basename()返回路径中的文件名
14、diename()返回路径中目录部分
递归删除目录下的文件
<?php
// $dir:要删除的文件的目录
function recursiveDelete($dir)
{
// 打开指定目录
if ($handle = @opendir($dir))
{
while (($file = readdir($handle)) !== false)
{
if (($file == ".") || ($file == ".."))
{
continue;
}
if (is_dir($dir . '/' . $file))
{
// 递归
recursiveDelete($dir . '/' . $file);
}
else
{
unlink($dir . '/' . $file); // 删除文件
}
}
@closedir($handle);
rmdir ($dir);
}
}
遍历文件夹下所有文件
<?php
function read_all ($dir){
if(!is_dir($dir)) return false;
$handle = opendir($dir);
if($handle){
while(($fl = readdir($handle)) !== false){
$temp = iconv('GBK','utf-8',$dir.DIRECTORY_SEPARATOR.$fl);//转换成utf-8格式
//如果不加 $fl!='.' && $fl != '..' 则会造成把$dir的父级目录也读取出来
if(is_dir($temp) && $fl!='.' && $fl != '..'){
echo '目录:'.$temp.'<br>';
read_all($temp);
}else{
if($fl!='.' && $fl != '..'){
echo '文件:'.$temp.'<br>';
}
}
}
}
}
read_all('D:\wamp\www\test');
//另一种方法,树形结构显示
tree("alipay");
function tree($directory)
{
$mydir = dir($directory);
echo "<ul>";
while ($file = $mydir->read()) {
if($file != "."&&$file != ".."){
if (is_dir("$directory/$file")) {
echo "<li style='color:blue'>$file</li>";
tree("$directory/$file");
} else{
echo "<li>$file</li>";
}
} } echo "</ul>";
$mydir->close();
}
?>
获得文件夹大小并格式化
$dir='CMS';
echo getRealSize(getDirSize($dir));
// 获取文件夹大小
function getDirSize($dir)
{
$sizeResult=0;
$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";
}
}
/*function getFolderSize($dir)
{
$count_size = 0;
$dir_array = scandir($dir);
foreach ($dir_array as $filename) {
if ($filename != "." && $filename != "..") {
if (is_dir($dir . "/" . $filename)) {
$count_size+= getFolderSize($dir . "/" . $filename);
} else{
$count_size = $count_size + filesize($dir . "/" . $filename);
}
} } return $count_size;
}*/
PHP中目录操作函数的更多相关文章
- 【Linux C中文函数手册】之 目录操作函数
目录操作函数 1)closedir 关闭目录 相关函数: opendir表头文件: #include<sys/types.h> #include<dirent.h>定义函数: ...
- Spark Streaming中的操作函数讲解
Spark Streaming中的操作函数讲解 根据根据Spark官方文档中的描述,在Spark Streaming应用中,一个DStream对象可以调用多种操作,主要分为以下几类 Transform ...
- PHP 文件与目录操作函数总结
>>>文件操作 打开 fopen(); 打开文件 读取内容 fread(); 从文件指针 handle 读取最多 length 个字节 readfile(); 读入 ...
- PHP目录操作(附封装好的目录操作函数文件)
目录函数库常用API $path='test'; var_dump(is_dir($path));//检测是否为目录 echo '<hr/>'; echo getcwd();//得到当前的 ...
- Spark Streaming中的操作函数分析
根据Spark官方文档中的描述,在Spark Streaming应用中,一个DStream对象可以调用多种操作,主要分为以下几类 Transformations Window Operations J ...
- linux中目录操作<1>
一.目录的权限 (1)目录文件的访问权限分为三组,分别为所有者,用户,其他.每个权限组的权限位有3个,分别为读.写.执行. 注意:可以使用stat函数得到目录文件的状态信息.权限为在stat结构中st ...
- Python中字符串操作函数string.split('str1')和string.join(ls)
Python中的字符串操作函数split 和 join能够实现字符串和列表之间的简单转换, 使用 .split()可以将字符串中特定部分以多个字符的形式,存储成列表 def split(self, * ...
- VB中字符串操作函数
Len Len(string|varname) 返回字符串内字符的数目,或是存储一变量所需的字节数. Trim Trim(string) 将字符串前后的空格去掉 Ltrim Ltrim(string) ...
- 目录操作函数opendir、readdir和closedir
首先,明确一个类型DIR的含义: #include <dirent.h> DIR A type representing a directory stream. DIR是在目录项格式 ...
- php中数组操作函数
一.数组操作的基本函数数组的键名和值array_values($arr); 获得数组的值array_keys($arr); 获得数组的键名array_flip($arr); 数组中的值与键名互换 ...
随机推荐
- 在wsl2 kali发行版中安装docker
前言 因为不想开虚拟机,而又需要多个linux发行版来做测试,也不想使用docker-desktop来曲线救国,所以想直接安装个docker随时使用,这一路也是踩了不少坑.直接复制进终端进行安装 su ...
- 活动回顾|阿里云云原生 Serverless 技术实践营 深圳站回放&PPT下载
11月24日"阿里云云原生 Serverless 技术实践营"深圳站圆满落幕.活动受众以关注 Serverless 技术的开发者.企业决策人.云原生领域创业者为主,活动形式为演讲 ...
- App Deploy as Code! SAE & Terraform 实现 IaC 式部署应用
企业上云是近些年的发展热潮,越来越多的企业把自己的应用部署在各个云厂商中,利用云计算带来的弹性.灵活.安全.低成本等特性,轻松帮助企业搭建自己的应用. 随着企业规模和业务形态的发展,一个应用需要组合多 ...
- 二、docker的安装和镜像管理
系列导航 一.docker入门(概念) 二.docker的安装和镜像管理 三.docker容器的常用命令 四.容器的网络访问 五.容器端口转发 六.docker数据卷 七.手动制作docker镜像 八 ...
- 简易机器学习笔记(九)LeNet实例 - 在眼疾识别数据集iChallenge-PM上的应用
前言 上一节大概讲了一下LeNet的内容,这一章就直接来用,实际上用一下LeNet来进行训练和分类试试. 调用的数据集: https://aistudio.baidu.com/datasetdetai ...
- sipp3.6 on centos7安装部署
概述 在VOIP软交换的开发过程中,必然需要对软交换进行批量压测. SIP压测工具一般都是sipp,免费,开源,功能足够强大,配置灵活,优点多. 环境 centos7.9 cmake3.6 sipp ...
- SNMP 使用总结
转载请注明出处: 1.SNMP简介 SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于网络设备和系统的管理协议.它允许网络管理员监控和管理网络 ...
- 使用Spring Data JPA实现审计功能,记录创建人、创建时间、最后修改时间和最后修改人
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- 25-IP核简介
1.IP IP(Intellectual Property)即知识产权,在半导体产业中讲IP核定义为用于"ASIC或FPGA中的预先设计好的电路功能模块".简言之,这里的IP即电路 ...
- 【ArgParse】一个开源的入参解析库
项目地址:argtable3 本地验证: 编译构建 新增验证 // examples/skull.c #include "argtable3.h" int main(int arg ...