php中的文件指的是文件和文件夹,不是单指文件。

1.判断文件(判断是文件还是文件夹)
找文件,输出结果为file,代表的是文件。
var_dump(filetype("./aa.txt"));
找文件夹,输出的是dir,代表的是目录。
var_dump(filetype("./aa"));
判断是不是文件,返回的是true
var_dump(is_file("./aa.txt"));
判断是不是文件夹,返回的是true
var_dump(is_dir("./aa"));
2.文件属性
获取当前服务器的根www
echo $_SERVER['DOCUMENT_ROOT']; 
获取文件上次访问时间,返回的是时间戳。
echo date(fileatime("./aa.txt"));
把时间戳转化为时间。
echo date("Y-m-d h:i:s",fileatime("./aa.txt"))
获取文件创建时间
echo date("Y-m-d h:i:s",filectime("./aa.txt"));
获取文件修改时间
echo date("Y-m-d h:i:s",filemtime("./aa.txt"));//
返回文件的大小,单位是字节b。
echo filesize("aa.txt");
判断文件是否存在,存在返回true,不存在返回flase。
var_dump(file_exists("aa.txt"));
3.文件路径

./代表当前路径
../代表上级路径
在页面指文档根,在php里面的根代表是磁盘目录,网页里面/也是代表根,是www目录。
返回D:/wamp/www/,取的是服务器的根。
echo $_SERVER['DOCUMENT_ROOT'];
返回index.php,返回的是文件名。
echo basename("/wamp/www/index.php");
返回index,返回的只是文件名。
echo basename("/wamp/www/index.php",".php");
返回/wamp/www,只是获取目录。
echo dirname("/wamp/www/index.php");
返回数组,里面是文件存在的目录、文件名、文件格式等信息。
var_dump(pathinfo("/wamp/www/index.php"));
返回D:\wamp\www\wenjiancaozuo\aa.txt,把相对路径转化为绝对路径。
echo realpath("./aa.txt");
4.目录操作

创建目录
mkdir("./bb");
删除目录,只能删除空文件夹。文件夹里有内容是不能删除的,会报错。
rmdir("bb");
移动文件夹,实际上是把文件重新命名位置。
rename("./cc","./aa/cc");
移动的同时可以更改文件名。
rename("./cc","./aa/dd");
5.遍历目录**

遍历租房文件夹下所有的文件,相当于未按里面的额搜索。
var_dump(glob("./zufang/*"));
遍历文件格式为php的文件
var_dump(glob("./zufang/*.php"));
打开目录资源,打开以后一定要记得关闭。
$dir = opendir("./zufang");
返回.  .代表当前目录
echo readdir();
返回..  ..代表上级目录
echo readdir();
返回第一个文件
echo readdir();
返回第二个文件
echo readdir();
//遍历出所有的文件,文件夹也可以读取。
 while($f = readdir($dir))
{
echo $f;
}
关闭目录资源
closedir($dir);//
例题1:方法1:给一个文件夹,读取文件夹里面文件的数量
echo ShuLiang("./zufang");
function ShuLiang($filename)
{
$sum = 0;
$dir = opendir($filename);
while($f = readdir($dir))
{
if($f=="." || $f=="..")//如果遍历出的是.或者..,什么也不执行.
{ }
else
{
$lujing = $filename."/".$f;
if(is_file($lujing))
{
$sum++;
}
else
{
$sum = $sum+ShuLiang($lujing);
}
}
}
closedir($dir);
return $sum;
}

例题1:方法2:该方法用来获取指定文件夹下文件的数量

function ShuLiang($filename)
{
$attr = glob($filename."/*");
$n = count($attr); foreach($attr as $v)
{
if(is_dir($v))
{
$n = $n+ShuLiang($v);
}
} return $n;
}
echo ShuLiang("./0904");

例题2:获取某一个目录下所有文件的大小

function Fsize($fname)
{
$size = 0;
$dir = opendir($fname); //遍历目录,找到文件,累加大小
while($u = readdir($dir))
{
if($u=="." || $u=="..")
{
}
else
{
$zfname = $fname."/".$u;
if(is_file($zfname))
{
$size += filesize($zfname);
}
}
} //找到子目录,获取子目录下文件大小
rewinddir($dir);
while($u = readdir($dir))
{
if($u=="." || $u=="..")
{
}
else
{
$zfname = $fname."/".$u;
if(is_dir($zfname))
{
$size += Fsize($zfname);
}
}
} closedir($dir);
return $size;
} echo Fsize("./0904");
6.文件操作
(1)文件整体操作
创建文件
touch("./cc.txt");
赋值文件,第一个参数是要复制的文件,第二个是把文件复制到哪里。
copy("./cc.txt","./aa/cc.txt");//
删除文件
unlink("./cc.txt");//
读取文件内容只能读取txt、html、php等,word、wxcle文档不能读取。
echo file_get_contents("./aa.txt");//
这个方法比较重要,可以从网上抓取数据,用正则表达式匹配。
echo file_get_contents("http://www.baidu.com");//
往文件里写内容,写的内容会覆盖原来的内容。
file_put_contents("./aa.txt","hello");//
修改往网页里面的内容
file_put_contents("./ceshi.php","hello");//
获取并且输出,前面没有写输出。 file_get_contents需要写输出echo。
readfile("http://www.baidu.com");//
把网页的代码一行一行的显示出来。
var_dump(file("http://www.baidu.com"));//
第一个参数是打开的文件,第二个是打开的方式,方式具体可以查看php手册。
$f = fopen("./aa.txt","r");//
aa.txt的内容是hello。这里返回的是h
echo fgetc($f);//
返回e
echo fgetc($f);//
返回l
echo fgetc($f);//
....fgetc()是一次读一个

一次读一行
echo fgets($f);
读取的长度,这里是读取2个长度,返回he。
 echo fread($f,2);
文件打开以后一定要关上,如果不关是不能进行别的操作的。*/
 fclose($f);
a方式是追加
$f = fopen("./aa.txt","a");
把world写在hello后面
 fwrite($f,"world");
 fclose($f);
给一个文件夹,删除该文件夹
ShanChu("./zufang");

function ShanChu($filename)
{
if(is_dir($filename))//判断是文件
{
$dir = opendir($filename);//打开文件夹 while($f = readdir($dir))//遍历出文件夹里所有的内容
{
if($d=="." || $d=="..")//去掉.和..
{ }
else//操作不是.和..的内容
{
$fname = $filename."/".$f;//找到遍历出的内容,拼出来的格式类似wamp/zufang
if(is_file($fname))//如果是文件
{
unlink($fname);
}
else//如果是文件夹
{
ShanChu($fname);//再调用ShanChu方法,删除的文件夹变了。
}
}
}
closedir($dir);//关闭文件夹
rmdir($filename);//把文件夹里的内容都删除以后,删除文件夹
}
else//如果是空文件夹
{
unlink($filename);//删除该空文件夹
}
}
												

php部分--文件操作的更多相关文章

  1. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  2. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

  3. Node基础篇(文件操作)

    文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...

  4. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  5. SQL Server附加数据库报错:无法打开物理文件,操作系统错误5

    问题描述:      附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...

  6. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  7. Linux文件操作的主要接口API及相关细节

    操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...

  8. C语言的fopen函数(文件操作/读写)

    头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:    FILE * fopen(const char * path, c ...

  9. Python的文件操作

    文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...

  10. python 文件操作(转)

    python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...

随机推荐

  1. 从拉动APP下载谈运营

    声明:这篇文章是前京东产品运营刘玮东的作品,我转过来主要方便以后自己温故,也怕这样的好文给漏或者找不到了. 当时面临的新课题就是如何用H5拉动APP的下载,背景是我们的渠道和发动传播的第一波用户不够多 ...

  2. 创建zend framework 项目要注意的

    1.必须要设置变量环境 我的电脑右击-属性-高级-环境变量 则在环境变量中添加 变量名:PATH 环境值:D:\phpserver\php5.4;D:\ZendFramework\bin 把php.e ...

  3. jquer 带左右按钮滚动图片 点击显示大图

    <style> ul{ list-style:none; padding:0px; margin:0px;} li{ list-style:none; padding:0px; margi ...

  4. gradle 构建spring源码时候报错

    这是使用jdk1.7报的错,我卸载1.7后使用1.8 ,就可以了

  5. C1 FlexGrid控件 Editor 冲突问题

    当给C1FlexGrid控件加入 Checkbox后,添加新行时对新行的Editor 赋新控件时,会冲突如下图:       下面我们借助BeforeRowColChange 事件来解决这个问题: 我 ...

  6. loadrunner常用计数器分析

    内存是第一个监视对象,确定系统瓶颈的第一个步骤就是排除内存问题.内存短缺的问题可能会引起各种各样的问题. Object(对象) Counters Description(描述) 参考值 Memory ...

  7. ZEN_CART_如何添加自定义页面

    按照下面的路径,添加自己的文件,就OK了 以about us页面为例, 默认模板 \includes\templates\template_default\templates\tpl_about_us ...

  8. 阅读android项目源码

    版权声明:欢迎转载,转载请注明出处;http://blog.csdn.net/angcyo 上一篇,我们成功导入并运行了 贝壳单词 项目. 这篇文章, 带大家一起读一读源码. 打开 贝壳单词 项目,定 ...

  9. POJ 3624 Charm Bracelet 简单01背包

    题目大意:有n件珠宝,每个珠宝的魅力值为v,重量为w,求在重量不超过m的情况下能达到的最大魅力值. 题目思路:简单的01背包,由于二维数组会超内存所以应该压缩成一维数组. dp[i][j],表示选取i ...

  10. 自定义View常处理的回调函数

    自定义View常处理的回调函数 onFinishInflate() 当View中所有的子控件均被映射成xml后触发 onMeasure(int, int) 确定所有子元素的大小 onLayout(bo ...