PHP-文件、目录相关操作
PHP-文件、目录相关操作
一 目录操作(Directory 函数允许获得关于目录及其内容的信息)
相关函数:
| 函数 | 描述 |
|---|---|
| chdir() | 改变当前的目录。 |
| chroot() | 改变根目录。 |
| closedir() | 关闭目录句柄。 |
| dir() | 返回 Directory 类的实例。 |
| getcwd() | 返回当前工作目录。 |
| opendir() | 打开目录句柄。 |
| readdir() | 返回目录句柄中的条目。 |
| rewinddir() | 重置目录句柄。 |
| scandir() | 返回指定目录中的文件和目录的数组。 |
ps:详解:http://www.w3school.com.cn/php/php_ref_directory.asp
二 文件操作
运行环境区别:当在 Unix 平台上规定路径时,正斜杠 (/) 用作目录分隔符。而在 Windows 平台上,正斜杠 (/) 和反斜杠 (\) 均可使用。
相关函数:
| 函数 | 描述 | PHP |
|---|---|---|
| basename() | 返回路径中的文件名部分。 | 3 |
| chgrp() | 改变文件组。 | 3 |
| chmod() | 改变文件模式。 | 3 |
| chown() | 改变文件所有者。 | 3 |
| clearstatcache() | 清除文件状态缓存。 | 3 |
| copy() | 复制文件。 | 3 |
| delete() | 参见 unlink() 或 unset()。 | |
| dirname() | 返回路径中的目录名称部分。 | 3 |
| disk_free_space() | 返回目录的可用空间。 | 4 |
| disk_total_space() | 返回一个目录的磁盘总容量。 | 4 |
| diskfreespace() | disk_free_space() 的别名。 | 3 |
| fclose() | 关闭打开的文件。 | 3 |
| feof() | 测试文件指针是否到了文件结束的位置。 | 3 |
| fflush() | 向打开的文件输出缓冲内容。 | 4 |
| fgetc() | 从打开的文件中返回字符。 | 3 |
| fgetcsv() | 从打开的文件中解析一行,校验 CSV 字段。 | 3 |
| fgets() | 从打开的文件中返回一行。 | 3 |
| fgetss() | 从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。 | 3 |
| file() | 把文件读入一个数组中。 | 3 |
| file_exists() | 检查文件或目录是否存在。 | 3 |
| file_get_contents() | 将文件读入字符串。 | 4 |
| file_put_contents() | 将字符串写入文件。 | 5 |
| fileatime() | 返回文件的上次访问时间。 | 3 |
| filectime() | 返回文件的上次改变时间。 | 3 |
| filegroup() | 返回文件的组 ID。 | 3 |
| fileinode() | 返回文件的 inode 编号。 | 3 |
| filemtime() | 返回文件的上次修改时间。 | 3 |
| fileowner() | 文件的 user ID (所有者)。 | 3 |
| fileperms() | 返回文件的权限。 | 3 |
| filesize() | 返回文件大小。 | 3 |
| filetype() | 返回文件类型。 | 3 |
| flock() | 锁定或释放文件。 | 3 |
| fnmatch() | 根据指定的模式来匹配文件名或字符串。 | 4 |
| fopen() | 打开一个文件或 URL。 | 3 |
| fpassthru() | 从打开的文件中读数据,直到 EOF,并向输出缓冲写结果。 | 3 |
| fputcsv() | 将行格式化为 CSV 并写入一个打开的文件中。 | 5 |
| fputs() | fwrite() 的别名。 | 3 |
| fread() | 读取打开的文件。 | 3 |
| fscanf() | 根据指定的格式对输入进行解析。 | 4 |
| fseek() | 在打开的文件中定位。 | 3 |
| fstat() | 返回关于一个打开的文件的信息。 | 4 |
| ftell() | 返回文件指针的读/写位置 | 3 |
| ftruncate() | 将文件截断到指定的长度。 | 4 |
| fwrite() | 写入文件。 | 3 |
| glob() | 返回一个包含匹配指定模式的文件名/目录的数组。 | 4 |
| is_dir() | 判断指定的文件名是否是一个目录。 | 3 |
| is_executable() | 判断文件是否可执行。 | 3 |
| is_file() | 判断指定文件是否为常规的文件。 | 3 |
| is_link() | 判断指定的文件是否是连接。 | 3 |
| is_readable() | 判断文件是否可读。 | 3 |
| is_uploaded_file() | 判断文件是否是通过 HTTP POST 上传的。 | 3 |
| is_writable() | 判断文件是否可写。 | 4 |
| is_writeable() | is_writable() 的别名。 | 3 |
| link() | 创建一个硬连接。 | 3 |
| linkinfo() | 返回有关一个硬连接的信息。 | 3 |
| lstat() | 返回关于文件或符号连接的信息。 | 3 |
| mkdir() | 创建目录。 | 3 |
| move_uploaded_file() | 将上传的文件移动到新位置。 | 4 |
| parse_ini_file() | 解析一个配置文件。 | 4 |
| pathinfo() | 返回关于文件路径的信息。 | 4 |
| pclose() | 关闭有 popen() 打开的进程。 | 3 |
| popen() | 打开一个进程。 | 3 |
| readfile() | 读取一个文件,并输出到输出缓冲。 | 3 |
| readlink() | 返回符号连接的目标。 | 3 |
| realpath() | 返回绝对路径名。 | 4 |
| rename() | 重名名文件或目录。 | 3 |
| rewind() | 倒回文件指针的位置。 | 3 |
| rmdir() | 删除空的目录。 | 3 |
| set_file_buffer() | 设置已打开文件的缓冲大小。 | 3 |
| stat() | 返回关于文件的信息。 | 3 |
| symlink() | 创建符号连接。 | 3 |
| tempnam() | 创建唯一的临时文件。 | 3 |
| tmpfile() | 建立临时文件。 | 3 |
| touch() | 设置文件的访问和修改时间。 | 3 |
| umask() | 改变文件的文件权限。 | 3 |
| unlink() | 删除文件。 | 3 |
ps:详解:http://www.w3school.com.cn/php/php_ref_filesystem.asp
相关详解:
1. fopen -- 打开文件或者 URL
mode 说明
'r' 只读方式打开,将文件指针指向文件头。
'r+' 读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,
'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE
eg:
$handle = fopen("/home/rasmus/file.txt", "r");
2. file -- 把整个文件读入一个数组中(此函数是很有用的)
和 file_get_contents() 一样,只除了 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败 file() 返回 FALSE。
eg:
代码
$lines = file('http://www.example.com/');// 在数组中循环,显示 HTML 的源文件并加上行号。foreach ($lines as $line_num => $line) {echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";}// 另一个例子将 web 页面读入字符串。参见 file_get_contents()。$html = implode('', file ('http://www.example.com/'));
3. fgets -- 从文件指针中读取一行
从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
eg:
$handle = fopen("/tmp/inputfile.txt", "r");if ($handle) {while (!feof($handle)) {$buffer = fgets($handle, 4096);echo $buffer;}fclose($handle);}
4. fgetss -- 从文件指针中读取一行并过滤掉 HTML 标记
和 fgets() 相同,只除了 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。
可以用可选的第三个参数指定哪些标记不被去掉
另:对的目录的操作:
1. opendir -- 打开目录句柄,打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。
2. readdir -- 从目录句柄中读取条目,返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。
eg:
代码
// 注意在 4.0.0-RC2 之前不存在 !== 运算符if ($handle = opendir('/path/to/files')) {echo "Directory handle: $handle\n";echo "Files:\n"; while (false !== ($file = readdir($handle))) {echo "$file\n";} while ($file = readdir($handle)) {echo "$file\n";} closedir($handle);}
3. scandir -- 列出指定路径中的文件和目录(很有用),返回一个 array,包含有 directory 中的文件和目录。
默认的排序顺序是按字母升序排列。如果使用了可选参数 sorting_order(设为 1),则排序顺序是按字母降序排列。
eg:
$dir = '/tmp';$files1 = scandir($dir);$files2 = scandir($dir, 1);print_r($files1);print_r($files2);
文件操作
1文件是否可读:
boolis_readable ( string filename )
如果由 filename 指定的文件或目录存在并且可读则返回 TRUE。
记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制。
2 文件是否可写
bool is_writable ( string filename )
如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。
记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制
3 检查文件是否存在
boolfile_exists ( string filename )
如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE
PHP-文件、目录相关操作的更多相关文章
- 关于C#资源文件的相关操作
关于资源文件的相关操作. //1.比较常见的有获取资源文件对应的文件流,然后转换到相对应的文件 //比较典型的做法是通过代码程序集加载指定资源 //如下通过Assembly的静态方法GetExecut ...
- java文件夹相关操作 演示样例代码
java文件夹相关操作 演示样例代码 package org.rui.io; import java.io.File; import java.io.FilenameFilter; import ja ...
- Oracle 参数文件及相关操作介绍
Oracle 参数文件及相关操作介绍 by:授客 QQ:1033553122 1.服务器参数文件 服务器参数文件是一个二进制文件,作为初始化参数的存储仓库.实例运行时,可用ALTER SYSTEM来改 ...
- Java IO_001.File类--文件或文件夹相关操作
Java IO之File对象常用操作 File类:用于文件或文件夹或网址相关联的操作.可以关联或不关联文件(即关联不存在的文件).构造函数有: public File(String pathname) ...
- python文件的相关操作
python 目录 python 1.python文件的介绍 使用文件的目的 Python文件的类型主要有两种:文本文件和二进制文件. 操作文件的流程主要有三步:打开-操作-关闭操作. 2.文件的打开 ...
- 用 JSP 实现对文件的相关操作
前段时间一直忙着作业,实验,动手的时间真是少之又少,今天终于可以继续和大家分享关于 JSP 的学习心得. 简单总结一下吧: JSP 理论性很强,感觉就是纯语法. 我更偏向于实际编写代码,这样更容易理解 ...
- C#对文件/目录的操作:Path、File、Directory、FileStream、StreamReader、StreamWriter等类的浅析
以下类的命名空间都是:System.I/0; 一.Path:主要对文件路径的操作! 常用方法: String path=@"C:\a\b\c\123.txt"; 1-1.Path. ...
- plist文件的相关操作
本文概要 1.plist文件的简介 2.在Xcode中创建plist文件 3.在Xcode中将plist文件转换成数组或者字典对象 4.将数组或者字典对象转换成plist文件并且存储 详细介绍 1.p ...
- linux基础——关于chmod用户权限和文件的相关操作
第一部分:1) 新建用户natasha,uid为1007,gid为555,备注信息为“master” 操作:useradd natasha新建natasha:修改uid是,usermod -u 100 ...
随机推荐
- C语言3中循环语句的比较
(1)while和do-while循环只在while后面指定条件,在循环体中应包含使循环趋于结束的语句如(I++):for循环可以在表达式三中包含使循环趋于结束的操作,可以设置循环体中的操作全部放在语 ...
- JavaScript CMD规范
CMD是另一种js模块化方案,它与AMD很类似,不同点在于:AMD 推崇依赖前置.提前执行,CMD推崇依赖就近.延迟执行.此规范其实是在sea.js推广过程中产生的. AMD规范请移步AMD 模块化规 ...
- Redis性能篇(二)CPU核和NUMA架构的影响
Redis被广泛使用的一个很重要的原因是它的高性能.因此我们必要要重视所有可能影响Redis性能的因素.机制以及应对方案.影响Redis性能的五大方面的潜在因素,分别是: Redis内部的阻塞式操作 ...
- CPU性能测试——CoreMark篇
本文将介绍使用CoreMark测试程序对我们小组自研芯片进行性能的测试,记录了CoreMarK工具的使用以及对其测试结果进行分析 测试环境: PC OS: Ubuntu20.04 LTS CPU: 自 ...
- 你真会看idea中的Log吗?
在项目中提交代码时,我们时常忘了自己是否已经update代码或者push代码了,或者以为自己push,但是别人说你的代码没push,其实可以通过idea的Log日志中查看,你会发现里面有三种颜色的标签 ...
- 项目实战--@Transactional 的使用
@Transactional 介绍 Spring 事务管理分为编码式和声明式的两种方式,编程式事务指的是通过编码方式实现事务:声明式事务基于 AOP,将具体业务逻辑与事务处理解耦.@Transacti ...
- 安装Linux Deploy和Termux之后,再安装ftp服务软件都是多余的!
之前以为Debian 9 running via Linux Deploy或者Termux在安卓系统部署之后,一定要安装vsftpd或者pure-ftpd这些专门的ftp服务器软件,才能提供ftp服务 ...
- mysql错误:java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone.
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more tha ...
- ORACLE的还原表空间UNDO写满磁盘空间,解决该问题的具体步骤
产生问题的原因主要以下两点:1. 有较大的事务量让Oracle Undo自动扩展,产生过度占用磁盘空间的情况:2. 有较大事务没有收缩或者没有提交所导制:说明:本问题在ORACLE系统管理中属于比较正 ...
- Python实验6--网络编程
题目1 1.编写程序实现基于多线程的TCP客户机/服务器程序. (1)创建服务器端套接字Socket,监听客户端的连接请求: (2)创建客户端套接字Socket,向服务器端发起连接: 服务器端套接字 ...