php教程目录,php基础入门篇-文件和目录操作_PHP教程

一篇关于php 入门的朋友参考的关于文件和目录的各种操作函数与实例应用,有需要的朋友可以简单的参考一下。

本章可以算是上一章的延续,介绍了除文件实际内容之外的附加信息,包括文件的大小、目录、访问权限等。文件系统中的某些函数只在服务器为特定的系统中时才有效,例如更改符号链接的函数symlink(),设定文件访问权限的函数chmod(),设定目录访问权限的函数umask()等等这些只在Linux系统中有效,在Windows系统中无效。PHP5以后提供的DirectoryIterator类也封装了很多实用的目录方面的操作

代码如下

复制代码

//------------- 采用DirectoryIterator类迭代目录中的文件 -------------

foreach(new directoryIterator('/usr/local/images') as $file){

print $file->getPathname()."n";

}

//------------- PHP5之前版本的实现方式 -------------

$d = opendir('/usr/local/images') or die($php_errormsg);

while(false !==($f = readdir($d))){

print $f."n";

}

closedir($d);文件信息函数

函数名 函数提供什么文件信息?

file_exists() 该文件是否存在

fileatime() 最后访问时间

filectime() 文件inode的最后修改时间

filegroup() 取得文件组(返回整数)

fileinode() 取得文件的信息节点数(返回整数)

filemtime() 取得文件数据块最后被写入的时间(返回Unix时间戳)

fileowner() 取得文件的所有者(返回用户ID)

fileperms() 取得文件的权限

filesize() 取得文件大小的字节数

filetype() 取得文件类型,可能返回 fifo,char,dir,block,link,file 和 unknown

is_dir() 判断给定文件名是否是一个目录

is_executable() 判断给定文件名是否可执行(自PHP5.0.0起可用于Windows)

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

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

is_readable() 判断给定文件名是否可读

is_writable() 判断给定文件名是否可写

目录相关函数

函数名 函数提供什么文件信息?

mkdir() 创建一个新目录,第二个参数可用来设置访问权限

rmdir() 删除目录

rename() 重命名一个文件或目录

目录类相关方法

DirectoryIterator类封装了很多与目录相关的方法

方法名 函数提供什么目录信息?

isDir() 判断给定的DirectoryIterator item对象是否是一个目录

isDot() 判断当前的DirectoryIterator item对象是否是‘.’或‘..’

isFile() 判断当前的DirectoryIterator item对象是否是一个有效的文件

isLink() 判断当前的DirectoryIterator item对象是否是一个连接

isReadable() 判断当前的DirectoryIterator item对象是否可读

isWritable() 判断当前的DirectoryIterator item对象是否可写

isExecutable() 判断当前的DirectoryIterator item对象是否可执行

getATime() 获取当前Iterator item最后访问时间

getCTime() 获取当前Iterator item最后修改时间

getMTime() 获取当前Iterator item文件数据块最后被写入的时间

getFilename() 获取当前Iterator item文件名(带扩展名)

getPathname() 获取当前Iterator item路径名

getPath() 获取当前Iterator item路径名和文件名

getGroup() 获取当前Iterator item组ID

getOwner() 获取当前Iterator item拥有者ID

getPerms() 获取当前Iterator item权限

getSize() 获取当前Iterator item文件大小

getType() 获取当前Iterator item类型,可能是file,link or dir

getInode() 获取当前Iterator item的inode节点号

文件时间戳解惑

touch()函数修改文件的更新时间

fileatime()函数返回文件因为读或写被打开的最后时间

filemtime()函数返回文件内容被修改的最后时间

filectime()函数返回文件内容或元数据被修改的最后时间

获取文件信息

通过stat()可以获取一个包含文件相关信息的数组,与此函数类似的是fstat()函数,这个函数以一个文件句柄作为参数(由fopen()或popen()返回),lstat()用来获取符号或文件连接的信息。

数字索引 字符串索引 说明

0 dev 设备号

1 ino 信息节点号

2 mode 保护模式

3 nlink 被连接数目

4 uid 所有者用户ID

5 gid 所在组ID

6 rdev 设备类型,如果是inode设备的话

7 size 文件大小的字节数

8 atime 上次访问的时间(Unix时间戳)

9 mtime 上次修改的时间(Unix时间戳)

10 ctime 上次改变的时间(Unix时间戳)

11 blksize 文件系统IO的块大小

12 blocks 所占据块的数目

修改文件权限

chmod()函数修改文件的权限

chown()函数修改文件的所有者

chgrp()函数修改文件所属组

注意:上述3个函数在Windows系统中无效

获取文件名各部分信息

basename()函数可以取得文件名,dirname()函数可以取得路径名,pathinfo()取得目录名、完整文件名、扩展名、文件名(即不带扩展名)的关联数组,键名分别是[dirname]、[basename]、[extension]、[filename]

常通过dirname(__FILE__)的组合来获取当前目录路径(物理路径,常用在引用其他PHP文件上)

删除文件

用unlink()函数可以删除一个文件,如果删除失败将产生一个E_WARNING错误

提示:PHP5.0.0后此函数也可以用来删除远程文件,如FTP等

复制或移动文件

使用copy(old_dir,new_dir)函数可以复制文件,使用rename(old_dir,new_dir)移动文件,这里的new_dir是可以可以重命名文件名的。

模式匹配文件名列表(模糊查询)

如果希望像命令行那样查询出某个目录中的所有jpg文件(*.jpg),可以使用DirectoryIterator类的FileterIterator子类accept()方法或者glob()函数获取匹配的文件名。

//FileterIterator的实现代码

代码如下

复制代码

class ImageFilter extends FilterIterator {

public function accept() {

return preg_match('@.(gif|jpe?g|png)$@i',$this->current());

}

}

foreach (new ImageFilter(new DirectoryIterator('/usr/local/images')) as $img) {

print "

n";

}

//-------------- glob函数的实现代码 ------------

代码如下

复制代码

foreach (glob('/usr/local/docs/*.txt') as $file) {

$contents = file_get_contents($file);

print "$file contains $contentsn";

}递归目录中的文件

如果想获得一个目录及其子目录的文件大小,可以使用RecursiveDirectoryIterator(提供子目录获取的功能)和RecursiveIteratorIterator(平整化)

代码如下

复制代码

$dir = new RecursiveDirectoryIterator('/usr/local');

$totalSize = 0;

foreach (new RecursiveIteratorIterator($dir) as $file) {

$totalSize += $file->getSize();

}

print "The total size is $totalSize.n";

http://www.bkjia.com/PHPjc/631305.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631305.htmlTechArticle一篇关于php 入门的朋友参考的关于文件和目录的各种操作函数与实例应用,有需要的朋友可以简单的参考一下。 本章可以算是上一章的延续...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

姚期智:当科学家发现自己喜欢探索的方向,整个世界会像打游戏一样愉悦

来源:上观新闻 作者:舒抒发现一个大定理的喜悦程度,和小时候吃第一口冰激凌、第一块巧克力是一样的。“走在滨江大道,能闻到江风吹来的桂花香。”夏秋交替之际来到上海,江风、江景和丹桂飘香,让姚期智在演讲…

java 佳博打印机,佳博蓝牙打印的java 连接

适用于gp-3120tu机型通过蓝牙协议与android app的对接, 用的是TSC指令.package com.freestyle.demo;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Handler;import android.os.HandlerThread;import…

imageloader图片基本加载

初始化&#xff1a; 配置初始化&#xff1a; <application android:name".Jiaimgapp"使用&#xff1a; http://blog.csdn.net/vipzjyno1/article/details/23206387 http://blog.csdn.net/vipzjyno1/article/details/23206387 http://blog.csdn.net/hudashi/ar…

刚获得物理诺奖的数学家:现实是对完美数学真理的扭曲反应,人脑是最终量子计算机!...

来源&#xff1a; 数学竞赛的那些事儿在20世纪中期&#xff0c;数学探究自然模式的能力被大大地增强了&#xff0c;如果那些远古的几何学者们看到这一切&#xff0c;必将大为惊愕甚至迷惑不解&#xff0c;在极为宏观的尺度上&#xff0c;天文学家们以整个银河系为基本单位&…

Java注解中produces啥意思,注解@RequestMapping中的produces,consumes属性

今天在项目中看到了RequestMapping中有两个属性&#xff0c;consumes和produces&#xff0c;于是就想弄清楚这两个属性是干什么的。一、produces指定返回值类型&#xff0c;并且可以设置返回值类型和返回值的字符编码&#xff1b;demo/**属性produces"application/json&qu…

如何实时查看linux下的日志

如何实时查看linux下的日志 Unix/linux&#xff08;88&#xff09; cat /var/log/*.log 如果日志在更新&#xff0c;如何实时查看 tail -f /var/log/messages 还可以使用 watch -d -n 1 cat /var/log/messages -d表示高亮不同的地方&#xff0c;-n表示多少秒刷新一次。 该指令&…

2020年世界机器人报告

来源&#xff1a;国际机器人联合会最新的《2020年世界机器人报告》(The new World Robotics 2020 Industrial Robots)显示&#xff0c;在世界各地的工厂中运行的270万台工业机器人&#xff0c;创下纪录&#xff0c;增长了12&#xff05;。新机器人的销量保持较高水平&#xff0…

$.getJSON()

$.getJSON(order.php,{op:detail,order_id:id},function(data){} ) 等价于 $.ajax({url: url,data: data,success: callback,dataType: json }); 转载于:https://www.cnblogs.com/xiaobiaomei/p/8464632.html

2020年诺贝尔化学奖得主自述:基因编辑技术将把我们带向何方?

来源&#xff1a;赛先生作者 ┃ Jennifer Doudna &#xff08;美国加州大学伯克利分校化学与分子和细胞生物学系教授&#xff09;翻译 ┃ 马宗敏制版编辑 | 栗子北京时间2020年10月7日下午&#xff0c;诺贝尔奖化学奖授予了基因编辑领域的两位先驱。加州大学伯克利分校教授詹妮…

使用travelbook架设自己的实时位置共享服务

travelbook 是一款开源的安卓APP&#xff0c;它能以低功耗提供实时位置共享&#xff0c;它包含功能如下&#xff1a; 好友之间分享实时位置&#xff1b;记录行程轨迹&#xff1b;标记收藏地点&#xff1b; 这款软件的主要解决的问题包括&#xff1a; 场景1&#xff1a;查看老…

matlab怎么保存为透明图,matlab 透明图像 fig 保存

在网上发现如下codes&#xff0c;可以生成透明图形。%If you ever wondered how to get a matlab figure transparent(particularly usefull when you export it to formats that featuretransparency, like eps, gif, png, etc.), here is how you do it:% you created a figu…

揭秘:1.2亿美元光刻机内部视频曝光,像科幻片一样震撼!

来源&#xff1a;直观学机械 &#xff0c;转今日半导体荷兰阿斯麦&#xff08;ASML&#xff09;公司的光刻机作为世界上最贵最精密的仪器&#xff0c;相信大家都有耳闻&#xff0c;它是加工芯片的设备。其最先进的EUV&#xff08;极紫外光&#xff09;光刻机已经能够制造7nm以下…

树状数组-神奇的二进制

树状数组是解决快速更新以及统计数组某段区间总和&#xff0c;设一个数组A[1-N],需要计算A[M-K]的总和&#xff0c;暴力解法需要O(K-M)&#xff0c;如果我们求出sum&#xff08;1-K&#xff09;和sum&#xff08;1-M&#xff09;,那么答案就是sum(1-M)-sum(1-K); 那么如何快速求…

通往诺贝尔奖之路:盘点10个著名的科学家族

文章 | COLIN HUNTER来源 | 科研大匠科学家们常常将最亲近的合作者当做自己的亲人看待&#xff0c;而对于有些科学家而言&#xff0c;他们的合作者就是他们的家人。无论是由于遗传因素、教育因素还是二者的综合影响&#xff0c;那些开创性的物理学研究往往是一项家庭事业。从杰…

apache php 脚本,PHP脚本不在Apache服务器上执行

问题描述我刚刚重新安装了Apache和PHP5但是当我访问我的doc root时它只下载了一个”download”文件。当我尝试documentroot /index.php时&#xff0c;它只是下载PHP文件。我安装了PHP&#xff0c;但Apache似乎不想执行它。人们建议在我的httpd.conf中添加’Load Module’线&…

20165212 预备作业3 Linux安装及学习

20165212 预备作业3Linux安装及学习 Linux虚拟机的安装过程 我像大部分同学一样&#xff0c;通过助教学姐给的Ubuntu下载地址下载映像文件、VB&#xff0c;但是屡次出现问题&#xff0c;不停的闪出一下错误提示窗口&#xff1a;在像同学求助无果之后我使用VM、Ubuntu安装了Linu…

特斯拉公布的「新电池」,究竟要用在哪里?

来源丨ArsTechnica作者丨SCOTT K. JOHNSON编译丨科技行者在近期的“电池日&#xff08;battery day&#xff09;”活动上&#xff0c;特斯拉公司终于透露了其长期保密项目的一系列惊人消息——讨论了特斯拉为自家电池组做出的全方位升级与改进&#xff0c;并宣称有望在未来三年…

matlab重叠相加法求卷积,通过重叠相加法实现卷积的报告.doc

数字信号处理课程设计题目&#xff1a;通过重叠相加法实现卷积院系&#xff1a;自动化与信息工程学院专业&#xff1a;通信工程班级: 通信091学号: 3090432028姓名: 雷帛川指导教师: 李建勋职称: 副教授2012年7月1日2012年7月14日用结构化设计方法。一个程序划分成若干模块&…

从工程文化和运维理念理解Netflix

http://www.infoq.com/cn/news/2018/01/netflix-engineering-culture 在技术圈儿&#xff0c;Netflix 是一家非常有特色的互联网公司。他们信奉“自由与责任”的企业文化&#xff0c;鼓励工程师发挥自己的爱好与特长&#xff1b;特别开放&#xff0c;很多内部系统都开源了&…

Python 程序 可以一直输入 quit_从零开始学Python - 第002课:第一个Python程序

在上一课中&#xff0c;我们已经了解了Python这门语言并安装了运行Python程序所需的环境&#xff0c;相信大家已经迫不及待的想开始自己的Python编程之旅了。首先我们来告诉大家在哪些地方可以写Python程序。编写代码的工具交互式环境我们打开Windows的“命令行提示符”工具&am…