目录
php文件,文件夹(目录)操作函数总结
您可能感兴趣的文章
首页 后端开发 php教程 php文件,文件夹(目录)操作函数总结_PHP教程

php文件,文件夹(目录)操作函数总结_PHP教程

Jul 13, 2016 am 09:55 AM
php 操作 文件 文件夹 目录

php文件,文件夹(目录)操作函数总结

本文章来给各位同学总结一下在php中一些常用的文件夹/文件目录操作函数总结,这些只是简单的介绍一些基础方法做个备注。

1、创建目录(mkdir)

bool mkdir (string $pathname [,int $mode [,bool $recursive [,resource $context ]]] )

<?php  
mkdir("/path/to/my/dir", 0777);  //成功返回true,失败返回false;
登录后复制

2、判断文件是否存在(file_exist)

bool file_exists (string $filename )

<?php  
$filename = '/path/to/phpernote.txt';
echo file_exists($filename)?'文件存在':'文件不存在';
登录后复制

3、检查指定的文件是否是目录,一般也用于判断目录是否存在(is_dir)

bool is_dir (string $filename )

<?php
var_dump(is_dir('a_file.txt'));//  输出false  
var_dump(is_dir('wwwroot/phpernote')); //相对当前目录检查wwwroot/phpernote目录是否存在,存在输出true,不存在输出false
var_dump(is_dir('..')); //输出true
登录后复制

注释:本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。

4、判断给定文件名是否为一个正常的文件 (is_file)

bool is_file ( string $filename )

<?php  
var_dump(is_file('a_file.txt'));//true  
var_dump(is_file('/usr/bin/'));//false
登录后复制

5、锁定或释放文件(flock)

bool flock ( string $filename, string $lock [,mix $block] )

lock 参数可以是以下值之一:

要取得共享锁定(读取的程序),将 lock 设为 LOCK_SH(PHP 4.0.1 以前的版本设置为 1)。
要取得独占锁定(写入的程序),将 lock 设为 LOCK_EX(PHP 4.0.1 以前的版本中设置为 2)。
要释放锁定(无论共享或独占),将 lock 设为 LOCK_UN(PHP 4.0.1 以前的版本中设置为 3)。
如果不希望 flock() 在锁定时堵塞,则给 lock 加上 LOCK_NB(PHP 4.0.1 以前的版本中设置为 4)。

block 可选。若设置为 1 或 true,则当进行锁定时阻挡其他进程。

提示:可以通过 fclose() 来释放锁定操作,代码执行完毕时也会自动调用。例如:

<?php
$file = fopen("test.txt","w+");
// 排它性的锁定
if (flock($file,LOCK_EX)){
  if(is_writable($file))
  fwrite($file,"www.phpernote.com 总结的文章");
  // 解锁
  flock($file,LOCK_UN);
}else{
  echo "锁定文件失败!";
}
fclose($file);
登录后复制

6、判断给定文件名是否为一个符号连接 (is_link)

bool is_link ( string $filename )

<?php  
var_dump(is_link("a.lnk")); //输出true
登录后复制

注释:本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。

7、删除目录 (rmdir)此函数仅删除空目录(rmdir)

bool rmdir ( string $dirname ) 

<?php
var_dump(rmdir("/usr/local/a")); //当a为空目录删除成功,a为非空目录删除失败
登录后复制

8、删除文件(unlink)

bool unlink ( string $filename )

<?php
while(is_file($wwwphpernotecom) == TRUE){
	chmod($wwwphpernotecom, 0666);//设置可读取,可写入权限
	unlink($wwwphpernotecom);
}
登录后复制

9、获取文件或目录的权限(fileperms)

mix fileperms ( filename )

<?php
//若成功,则返回文件的访问权限。若失败,则返回 false
echo fileperms("test.txt");//输出:33206
登录后复制

以八进制值返回权限

<?php
echo substr(sprintf("%o",fileperms("test.txt")),-4);//输出:1777
登录后复制

提示:本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。

10、获取指定文件或目录的类型(filetype)

mix filetype ( filename )

若成功,则返回 7 种可能的值(fifo char dir block link file unknown)。若失败,则返回 false。例如:

<?php
echo filetype("test.txt");//输出:file
登录后复制

提示:本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。

11、读取目录文件(opendir readir closedir)

resource opendir ( string $path [,resource $context ] )

打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。

string readdir ( resource $dir_handle )

返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。

void closedir ( resource $dir_handle )

关闭由 dir_handle 指定的目录流。流必须之前被 opendir() 所打开。

void rewinddir ( resource $dir_handle )
 
将 dir_handle 指定的目录流重置到目录的开头。

下面是一个完整的读取目录文件的示例:

<?php
$dir = "/etc/php5/";
if (is_dir($dir)) {  
    if ($dh = opendir($dir)) {  
        while (($file = readdir($dh)) !== false) {  
            echo "文件名: $file : 文件类型: " . filetype($dir . $file) . "\n";  
        }  
        closedir($dh);  
    }  
}
登录后复制

12、重命名文件或目录(rename)

bool rename ( oldname, newname, context )

<?php
//将当前目录下的子目录a下面的文件1.gif重命名为2.gif
rename('/a/1.gif', '/a/2.gif');
登录后复制

说明:对目录也一样。系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE。

如果要移动文件或目录,只要将重命名后的路径设置为新的路径就可以了,例如:

<?php
//将当前目录下的子目录a下面的文件1.gif,移动到当前目录下的子目录b,并且重命名为2.gif
rename('/a/1.gif', '/b/2.gif');
//注意:如果目录b不存在,就会移动失败
登录后复制

13、复制(拷贝)文件(copy)

bool copy ( source, destination )

<?php
//将当前目录下的子目录a下面的文件1.gif,复制到当前目录下的子目录b,并命名为2.gif
copy('/a/1.gif', '/b/1.gif');
登录后复制

说明:不能对目录进行此项操作;如果目标文件(上面的/b/1.gif)已经存在,原来的文件将被覆盖;如果要移动文件的话,请使用 rename() 函数。

14、获取目录的可用空间(disk_free_space)

disk_free_space ( directory )

<?php
echo disk_free_space("C:");//输出:209693288558
登录后复制

15、判断指定的文件是否可写(is_writable 或 is_writeable)

bool is_writable ( file )

说明:如果文件存在并且可写则返回 true;file 参数可以是一个允许进行是否可写检查的目录名;本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。例如:

<?php
$file = "test.txt";
//或者:$file = 'd:\wwwroot\phpernote\';
echo is_writable($file)?'可写':'不可写';
登录后复制

16、以读写(w+)模式建立一个具有唯一文件名的临时文件(tmpfile)

resource tmpfile()

<?php
$temp = tmpfile();
fwrite($temp, "Testing, www.phpernote.com");
//倒回文件的开头
rewind($temp);
//从文件中读取 1k
echo fread($temp,1024);
//删除文件
fclose($temp);
//文件会在关闭后(用 fclose())自动被删除,或当脚本结束后
//输出:Testing, www.phpernote.com
登录后复制

17、改变文件权限模式(chmod)

bool chmod ( file [,mode] )

mode 可选。规定新的权限。该参数由 4 个数字组成:
第一个数字永远是 0
第二个数字规定所有者的权限
第二个数字规定所有者所属的用户组的权限
第四个数字规定其他所有人的权限
可能的值(如需设置多个权限,请对下面的数字进行总计):
1 - 执行权限
2 - 写权限
4 - 读权限

<?php
// 所有者可读写,其他人没有任何权限
chmod("test.txt",0600);
// 所有者可读写,其他人可读
chmod("test.txt",0644);
// 所有者有所有权限,其他所有人可读和执行
chmod("test.txt",0755);
// 所有者有所有权限,所有者所在的组可读
chmod("test.txt",0740);
登录后复制

18、扩展函数,方法

php读取目录并列表显示目录中的文件的函数

PHP删除目录及目录下所有文件

更多文件,文件夹(目录)函数请参考:

PHP Filesystem 函数

您可能感兴趣的文章

  • php清空(删除)指定目录下的文件,不删除目录文件夹的方法
  • php判断文件或目录(文件夹)是否存在
  • linux chmod(文件或文件夹权限设定)命令参数及用法详解
  • MySQL通过命令形式导入与导出.sql文件备份数据操作的实例
  • php提取身份证号码中的生日日期以及验证是否为未成年人的函数
  • PHP向文件写入或追加数据
  • linux删除文件,文件夹命令rm 命令详解
  • Linux命令文件目录管理cat命令

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/992746.htmlTechArticlephp文件,文件夹(目录)操作函数总结 本文章来给各位同学总结一下在php中一些常用的文件夹/文件目录操作函数总结,这些只是简单的介绍一...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

在本章中,我们将了解CakePHP中的环境变量、常规配置、数据库配置和电子邮件配置。

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

为了在 cakephp4 中处理日期和时间,我们将使用可用的 FrozenTime 类。

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

为了进行文件上传,我们将使用表单助手。这是文件上传的示例。

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

在本章中,我们将学习以下与路由相关的主题?

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 创建验证器 CakePHP 创建验证器 Sep 10, 2024 pm 05:26 PM

可以通过在控制器中添加以下两行来创建验证器。

See all articles