PHP 代 码 操 作 文 件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<?php
//php中的文件指的是文件和文件夹,不是单指文件。
/*
//1.判断(判断是文件还是文件夹)
var_dump(filetype("./aa.txt"));//关键字:filetype 找文件,输出结果file,代表的是文件。
var_dump(filetype("./aa")); //关键字:filetype 找文件夹,输出的是dir,代表的是目录。
var_dump(is_file("./aa.txt"));//关键字:is_file 判断是不是文件,是就返回true
var_dump(is_file("./aa"));//不是返回flase
var_dump(is_dir("./aa.txt"));//关键字:is_dir 判断是不是文件夹,不是返回flase
var_dump(is_dir(",aa"));//是就返回true
*/
/*
//2.文件属性 //关键字date输出的时间戳格式化显示
echo date(fileatime("./aa.txt"));//关键字:fileatime获取文件上次访问的时间,返回的是时间戳。
echo date("Y-m-d h:i:s",fileatime("./aa.txt"));//date把时间戳转化为时间
echo date("Y-m-d h:i:s",filectime("./aa.txt"));//关键字:filectime获取文件创建时间
echo date("Y-m-d h:i:s",filemtime("./aa.txt"));//关键字:filemtime获取文件修改时间
echo filesize("aa.txt"); //返回文件的大小,单位是字节b
var_dump(file_exists("aa.txt")); //关键字:file_exists 判断文件是否存在,存在返回true,不存在返回flase
*/
//3.文件路径
// ./代表当前路径
// ../代表上级路径
// / 在页面指文档根,在php里面的根代表是磁盘目录,网页里面/也是代表根,是www目录。
//echo $_SERVER['DOCUMENT_ROOT']; // <--关键字- 返回D:/wamp/www/取的是服务器的根
//echo basename("/wamp/www/index.php");//返回index.php,返回的是文件名。
//echo basename("/wamp/www/index.php",".php");//返回index,返回的只是文件名。
//echo dirname("/wamp/www/index.php");//返回/wamp/www,只是获取目录。
//var_dump(pathinfo("/wamp/www/index.php"));//返回数组,里面是文件存在的目录、文件名、文件格式等信息。
//echo realpath("./aa.txt");//返回D:\wamp\www\wenjiancaozuo\aa.txt,把相对路径转化为绝对路径。
//4.目录操作
//mkdir("./bb");//创建目录
//rmdir("bb");//删除目录,只能删除空文件夹。文件夹里有内容是不能删除的,会报错。
//rename("./cc","./aa/cc");//移动文件夹,实际上是把文件重新命名位置。
//rename("./cc","./aa/dd");//移动的同时可以更改文件名。
//5.遍历目录**
//var_dump(glob("./zufang/*"));//遍历租房文件夹下所有的文件,相当于未按里面的额搜索。
//var_dump(glob("./zufang/*.php"));//遍历文件格式为php的文件
/*$dir = opendir("./zufang");//打开目录资源,打开以后一定要记得关闭。
//echo readdir();//返回. .代表当前目录
//echo readdir();//返回.. ..代表上级目录
//echo readdir();//返回第一个文件
//echo readdir();//返回第二个文件
while($f = readdir($dir))//遍历出所有的文件,文件夹也可以读取。
{
echo $f;
}
closedir($dir);//关闭目录资源
*/
//例题:给一个文件夹,读取文件夹里面文件的数量
/*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;
}
*/
//6.文件操作
//(1)文件整体操作
//touch("./cc.txt");//创建文件
//copy("./cc.txt","./aa/cc.txt");//赋值文件,第一个参数是要复制的文件,第二个是把文件复制到哪里。
//unlink("./cc.txt");//删除文件
//echo file_get_contents("./aa.txt");//读取文件内容只能读取txt、html、php等,word、wxcle文档不能读取。
//echo file_get_contents("http://www.baidu.com");//这个方法比较重要,可以从网上抓取数据,用正则表达式匹配。
//file_put_contents("./aa.txt","hello");//往文件里写内容,写的内容会覆盖原来的内容。
//file_put_contents("./ceshi.php","hello");//修改往网页里面的内容
//readfile("http://www.baidu.com");//获取并且输出,前面没有写输出。 file_get_contents需要写输出echo。
//var_dump(file("http://www.baidu.com"));//把网页的代码一行一行的显示出来。
/*$f = fopen("./aa.txt","r");//第一个参数是打开的文件,第二个是打开的方式,方式具体可以查看php手册。
//echo fgetc($f);//aa.txt的内容是hello。这里返回的是h
//echo fgetc($f);//返回e
//echo fgetc($f);//返回l
//....fgetc()是一次读一个
//echo fgets($f);//一次读一行
echo fread($f,2);//读取的长度,这里是读取2个长度,返回he。
fclose($f);//文件打开以后一定要关上,如果不关是不能进行别的操作的。*/
/*$f = fopen("./aa.txt","a");//a方式是追加
fwrite($f,"world");//把world写在hello后面
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);//删除该空文件夹
}
}
*/
?>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?