php 操作系统,PHP 处理文件和操作系统
1 文件与目录
1.1 解析目录路径
1) 获取路径的文件
string basename(string path, [, string suffix])
如果提供了可选参数suffix,当返回的文件名包含这个扩展名时将忽略该后缀。
2) 获取路径的目录
string dirname(string path)
返回路径的目录部分。
3) 更多关于路径的信息
array pathinfo(string path [, options])
返回一个关联数组,其中包括路径的四部分信息:目录名、基本名、扩展名和文件名
$pinfo = pathinfo(“/path/to/index.html”);
$pinfo[‘dirname’]
$pinfo[‘basename’]
$pinfo[‘extension’]
$pinfo[‘filename’]
4) 确定绝对路径
string realpath(string path)
将path中的所有符号链接和相对路径引用转换为相应的硬链接和绝对路径。
1.2 计算文件、目录和磁盘大小
1) 确定文件的大小
int filesize(string filename)返回指定文件的大小,以字节为单位。
2) 计算磁盘的可用空间
float disk_free_space(string directory)返回指定目录所在磁盘分区的可用空间,以字节为单位。
3) 计算磁盘的总容量
float disk_total_space(string directory)返回指定目录所在的磁盘分区的总容量,以字节为单位。
4) 获取目录大小
function directorySize($directory){
$directorySize = 0;
if($dh = @opendir($directory)){
while($filename != “.” && $filename != “..”){
if(is_file($directory.”/”.$filename))
$directorySize += filesize($directory.”/”.$filename);
if(is_dir($directory.”/”.$filename))
$directorySize += directorySize($directory.”/”.$filename);
}
}
}
1.3 确定访问和修改时间
1) 确定文件的最后访问时间
int fileatime(string filename)返回文件最后的访问时间,采用UNIX时间戳格式。
2) 确定文件最后改变时间
int filectiome(string filename)
注:最后改变时间是对inode的相关信息修改的最后时间
3) 确定文件的最后修改时间
int filemtime(string filename) 返回文件的最后修改时间。
2 文件处理
资源(resource)这个词常与可以发起输入或输出流的实体联系在一起。标准输入或输出、文件和网络套接字都是资源的例子。
换行符通过字符\n表示,表示文件中一行的末尾。
程序需要一种标准的方式来识别合适到达文件的末尾。这个标准通常称为文件末尾(或EOF)字符。在PHP中,feof()函数用来确定是否到达资源末尾,它在文件IO操作中经常使用。
2.1 打开和关闭文件
1) 打开文件
resource fopen(string resource, string mode [, int use_include_path [, resource context]])
文件打开模式定义:
R 只读
r+ 读写
W 只写。删除全部已有内容。
w+ 读写。
A 只写,向文件追加内容
x 创建并打开只写的文件。
x+ 创建并以读写方式打开文件
如果use_include_path为1,则PHP考虑配置指令include_path中指定的路径。
2) 关闭文件
boolean fclose(resource filehandle)
filehandle必须是使用fopen()或fsockopen()打开的已存在的文件指针。
2.2 读取文件
1) 将文件读入数组
array file(string filename [int use_include_path [, resource context]]) 能够将文件读取到数组中,换行符附加在每个元素的末尾。
注意:file()很特殊,它不像其它读写函数,它不必建立文件句柄来读取文件内容。
2) 将文件内容读入字符串变量
string file_get_contents(string filename [int use_include_path [, resource context [, int offset [, int maxlen]]]]) 将文件中的内容读到字符串中。
3 将CSV文件读入数组
array fgetcsv(resource handle [, int length [, string delimiter [, string enclosure]]])
省略length或将其设为0都会导致任意的行长度。可以设置一个比最大行大的数值用来提升性能。
file()和list()可以实现fgetcsv()函数的功能
[code]
$users = file(“/usr/data/s.csv”);
foreach($users as $user){
list($name, $email, $phone) = explode(‘,’, $user);
….
}
[/code]
这种方式客观性更强一些。使用fgetcsv()时如果希望遇到换行符停止,那么不能指定长度,否则不可控。
4 读取指定书目的字符
string fgets(resource handel [, int length])
从 handle 指向的文件中读取一行并返回长度最多为 length – 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length – 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
[code]
$h = fopen(‘t.txt’,’r’);
$i=1;
while(!feof($h)){
echo $i.’->’.fgets($h, 10);
$i++;
}
fclose($h);
[/code]
从以上程序可以测试出,每次读取9个字符,但是如果先遇到换行或EOF,则忽略长度限制。如果把length设置的比较大,则可以看做是读取文件行函数,当然它有移动文件位置指针。
5 从输入中剔除标签
string fgetss(resource handle, int length [, string allowable_tags])
和fgets()函数类似,只是它从输入中清除所有HTML和PHP标签。如果要忽略某些标签,就把其放入allowable_tags中。参数 length 从 PHP 5 起开始可选。
[code]
$tags = ‘
’;
$fh = fopen(“a.html”,”r”);
while(!feof($fh)){
$article .= fgetss($fh, 1024, $tags);
}
fclose($fh);
$fh = fopen(“a.html”, “w”);
fwrite($fh, $article);
fclose($fh);
[/code]
6 以一次读取一个字符的方式读取文件
stirng fgetc(resource handel)
7 忽略换行符
string fread(resource handle, int length)
fread不考虑换行符,当读取了length个字节或到达了EOF则停止,它有助于读取二进制文件。只要使用filesize()确定了应当读取的字符数,就能很方便使用这个函数读取整个文件。
[code]
$file = ‘/var/data/users.txt’;
$fh = fopen($file, ‘r’);
$userdata = fread($fh, filesize($file));
fclose($fh);
filesize()返回文件有多少个字节。
[/code]
8 读取整个文件
int readfile(string filename [, int use_include_path]) 读取由filename指定的整个文件,立即输出到缓冲区并返回读取的字节数。
9 根据预定义的格式读取文件
mixed fscanf(resource handle, string format [, string var1]) 按照预定义的格式解析资源
2.3 将字符串写入文件
int fwrite(resource handle ,string string [, int length]) 将字符串的内容输出到指定的资源中。
2.4 移动文件指针
1) 将文件指针移到偏移量指定的位置
int fseek(resource handle, int offset [, int whence])
2) 获取当前指针的偏移量
int ftell(resource handle)
3) 将文件指针移回至文件开始处
int rewind(resource handle)
2.5 读取目录内容
1) 打开目录句柄
resource opendir(string path, [, resource context])
2) 关闭目录句柄
void closedir(resource directory_handle)
3) 解析目录内容
string readdir(resource dir_handle) 返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。
4) 将目录读入数组
array scandir(string directory [, int sorting_order [, resource context]])
3 执行shell命令
1) 删除目录
int rmdir(string dirname)
2) 重命名文件
boolean rename(string oldname, string newname [, resource context])
3 touch文件
int touch(string filename [, int time [, int atime]]) 文件不存在将创建空文件
4 系统级程序执行
4.1 清理输入
string escapeshellarg(string arguments) 函数用单引号界定给定的参数,并为输入的参数中的单引号进行转义。
string escapeshellcmd(string command)
4.2 PHP的程序执行函数
1) 执行系统级命令
string exec(string command [, array &output [, &retrun_var]])
2) 获取系统命令的结果
string system(string command, [, int return_var]) 函数直接将输出返回给调用者。
3) 返回二进制输出
void passthru(string command [, int &return_var])
4) 用反引号执行shell命令
使用反引号界定字符串时,就是告诉PHP该字符串应当作为shell命令来执行。
5 可代替反引号的函数
string shell_exec(string command)
php 操作系统,PHP 处理文件和操作系统相关推荐
- linux操作系统怎么创建文件,Linux操作系统创建文件命令的方法
创建文件 mkdir aaa mkdir –p aaa 创建文件夹命令 Vi foo.txt emacs foo.txt echo "aaa">foo.txt cat > ...
- linux find 删除文件夹,linux中find与rm实现查找并删除目录或文件linux操作系统 -电脑资料...
在linux中find是查找搜索文件而rm是删除文件,下面我们来看一篇linux中find与rm实现查找并删除目录或文件的实例,希望文章对大家会有所帮助, 删除指定目录下指定文件 find 要查找的目 ...
- linux复制压缩文件夹,[操作系统]linux中文件或者文件夹的基本操作(复制,移动,删除,查找,压缩)...
[操作系统]linux中文件或者文件夹的基本操作(复制,移动,删除,查找,压缩) 0 2015-12-28 00:00:15 linux 文件(文件夹)的创建,复制,移动,重命名,删除基本命令 复制文 ...
- 【操作系统基础】文件管理系统(一)
一.初始文件管理 由于系统的内存有限并且不能长期将文件保存在内存中,因此平时总是将它们以文件的形式存放在外存中,需要时再将它们调入内存.如何合理并高效地进行文件管理是操作系统实现的目标. 1. 文件的 ...
- 【操作系统基础】文件管理系统(二)
四.文件的物理结构 1. 文件块与磁盘块 在内存管理中,进程的逻辑地址空间被分为一个一个页面.同样的,在外存管理中,为了方便对文件数据的管理,文件的逻辑地址空间也被分为了一个一个的文件"块& ...
- 操作系统中文件系统-文件的分类
一.文件的概念 1. 文件(file) (1) 文件是软件机构,软件资源的管理方式: (2) 具有符号名的一组相关元素的有序序列,是一段程序或数据的集合: (3) 一组赋名的相关联字符流的集合,或者是 ...
- 操作系统怎么把文件放到docker容器里
操作系统怎么把文件放到docker容器里 完美拷贝本地文件到docker容器: (1)查找容器 docker ps -a (2)确定我们的容器名,并获取容器长ID docker inspect -f ...
- 【操作系统】30天自制操作系统--(27)文件操作
本章主要介绍了对 _alloca 函数的兼容,日文的显示,以及着重介绍了文件系统操作. 一 对_alloca的支持 首先作者写了一个小应用程序,功能是找出并打印1000以内的质数: #include ...
- python 文件管理系统为用户_操作系统中的文件管理系统为用户提供的功能是什么...
操作系统中的文件管理系统为用户提供的功能是按文件名管理文件,文件管理主要负责文件的存储.检索.共享和保护,为用户提供文件操作的方便. 操作系统中的文件管理系统为4 D R Y W 5用户提供的功能是按 ...
最新文章
- Spring Boot 最最最常用的注解梳理
- CNN如何用于NLP任务?一文简述文本分类任务的7个模型(附代码)
- javascript之温习闭包
- [转载]使用RoboCopy 命令
- qt中树形控件QTreeWidget的项点击后获取该项的文本
- 计划的执行与回顾的重要性与必要性
- 实现自动文本摘要(python,java)
- python入门之正则表达式
- Python实现中文转化为对应的拼音以及拼音转化为相应的中文
- Python的中文处理
- netconsole 重定向kernel日志到远程服务器
- 简述:bs和cs的区别
- java页面展示_JAVA页面展示问题
- 小学期云效能训练营-Day04
- eclipse更改java版本
- 项目管理心得体会(一)
- java编程找出吸血鬼数字,找出四位數的所有吸血鬼數字(JAVA)
- 灵信视觉led。六代卡和五代卡
- 如何通过采购管理为房地产企业创造价值?
- 区域一体化电子病历系统管理源码 医院SOA架构 医院源码
热门文章
- Intellij idea 添加浏览器
- mysql安装教程_mysql8.0.20安装教程,mysql下载安装教程8.0.20
- 怎样使用python画复杂函数_在python中绘制复杂的函数?
- js/jquery 获取本地文件的文件路劲 获取input框中type=‘file’ 中的文件路径(转载)...
- 2015.7.9(1000股涨停,未按分段交易中国重工、中国软件减仓失误!补做大智慧、中色股份追高,而后控制仓位预防高开跳水——重新整理分段交易原则)发现中软吸筹率极高...
- [leetcode]Search in Rotated Sorted Array II
- 第二个结对编程——UI设计
- Java中的一些基础概念
- Silverlight的发布
- 【个人笔记】OpenCV4 C++ 快速入门 19课