PHP文件操作
Posted 格调evo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP文件操作相关的知识,希望对你有一定的参考价值。
文件操作
1.只能操作服务器的文件
2.文件包含目录和文件
判断文件类型
var_dump(filetype("../0626"));//返回文件类型 目录是dir 文件是file
var_dump(is_dir("../0626"));//判断路径是不是目录
var_dump(is_file("../ajax.php"));//判断路径是不是文件
文件属性
echo date("Y-m-d H:i:s",fileatime("../ajax.php"));//上次访问时间
echo date("Y-m-d H:i:s",filectime("../ajax.php"));//创建时间
echo date("Y-m-d H:i:s",filemtime("../ajax.php"));//修改时间
echo filesize("../ajax.php");//文件大小 字节为单位
var_dump(file_exists("../ajax.php"));//判断文件是否存在
文件路径
当前路径 ./ 上级目录 ../ 下级目录 目录/ 根路径 /
如果是php里面的根 / 路径代表:磁盘的根
如果是在网页里面的根 / 路径代表:服务器的根 www
var_dump(file_exists("/wamp/www/ajax.php"));
echo $_SERVER[‘DOCUMENT_ROOT‘];//取服务器的根路径
echo basename("../ajax.php");//从路径中获取带后缀的文件名
echo basename("../ajax.php",".php");//从路径中获取不带后缀的文件名
echo dirname("../ajax.php");//取路径中除去文件名的目录
var_dump(pathinfo("../0630/upload.php"));//返回目录信息 格式为数组
echo realpath("../0630/upload.php");//将相对路径转化为绝对路径
操作目录
var_dump(glob("../0627/*.php"));//获取目录下所有的文件* 某个后缀的*.php
/*$attr=glob("../0627/*");
for($i=0;$i<count($attr);$i++)
{
echo $attr[$i]."<br>";
}*/
获取目录下文件和文件夹数量如下 使用全局变量
/*$filenum=0;
$dirnum=0;
Num("../0627");
echo "文件数量为".$filenum."<br>";
echo "文件夹的数量为".$dirnum;
function Num($url)
{
global $filenum;
global $dirnum;
//判断给的路径是不是文件
if(is_file($url))
{
$filenum=1;
return $filenum;
exit;
}
//获取目录下所有的子文件
$attr=glob($url."/*");
//遍历所有的子文件
foreach($attr as $v)
{
if(is_file($v))
{
$filenum++;
}
else
{
$dirnum++;
Num($v);
}
}
echo "";
}*/
只求文件数量 不使用全局变量
/*echo Num("../0627");
function Num($url)
{
$filenum=0;
//判断给的路径是不是文件
if(is_file($url))
{
$filenum=1;
return $filenum;
exit;
}
//获取目录下所有的子文件
$attr=glob($url."/*");
//遍历所有的子文件
foreach($attr as $v)
{
if(is_file($v))
{
$filenum++;
}
else
{
$filenum=$filenum+Num($v);
}
}
return $filenum;
}*/
//计算文件夹大小
echo DirSize("../0627")."<br>";
function DirSize($url)
{
//定义变量存储文件大小
$size=0;
//判断给的路径是不是文件
if(is_file($url))
{
return filesize($url);
exit;
}
//如果是目录 取目录下的所有文件
$attr=glob($url."/*");
//遍历子文件
foreach($attr as $v)
{
if(is_file($v))
{
$size=$size+filesize($v);
}
else
{
$size=$size+DirSize($v);
}
}
return $size;
}
//使用目录资源遍历
$dir=opendir("../0627");//打开目录资源
//echo readdir($die);//读取目录下的文件 执行一次读一个
while($wj=readdir($dir))
{
echo $wj."<br>";
//if($wj=="." || $wj=="..")
}
closedir($dir);//关闭目录资源
rewinddir($dir);//将指针重置
使用readdir()读取的第一个和第二个内容
第一个是.代表当前目录
第二是..上级目录
在使用目录资源遍历文件夹时要注意将前两个排除if($wj=="." || $wj=="..")
目录操作
1.创建目录(文件夹)
//mkdir("./test");
2.删除目录(文件夹) 只能删除空的文件夹
//rmdir("./test");
3.移动目录(文件夹)<br />
//rename("./test","../test11");
文件整体操作
//touch("./test.txt");//创建文件
//copy("./test.txt","../test.txt");//复制文件
//unlink("./test.docx");//删除文件
//echo file_get_contents("./test.txt");//获取文件内容 txt 页面
//echo file_get_contents("http://www.baidu.com");//远程获取内容
//file_put_contents("./test.txt","hello");//向文件写入内容 会清空原有内容
//readfile("./test.txt");//获取文件内容 且直接输出
//var_dump(file("./test.txt"));//读取文件内容 返回数组,数组的每个元素对应的是一行
文件内容操作
1.打开文件资源
$fp=fopen("./test.txt","a");
操作文件
//echo fgetc($fp);//每次读一个字符
/*while(!feof($fp))//判断文件是否读到末尾
{
echo fgetc($fp);
}*/
//echo fgets($fp);//每次读一行
//echo fread($fp,10);//读取特定长度换行占2个字符
fwrite($fp,"hey kaka \r\nok");// \r\n换行
2.关闭文件资源
fclose($fp);
删除文件夹
<?php //删除文件夹(包括里面的所有文件) // ./tp // ./tp/Public function deldir($dirname) { if(!file_exists($dirname)) { die("文件夹不存在!"); } //如果是文件,直接删除即可 if(is_file($dirname)) { unlink($dirname); exit(); } //打开目录资源 $dir = opendir($dirname); while($filename = readdir($dir)) { if($filename !="." && $filename!="..") { //******* $filename = $dirname."/".$filename; if(is_dir($filename) ) { deldir($filename); }else { unlink($filename); } } } closedir($dir); rmdir($dirname); } deldir("./tp");
重点内容如下:
var_dump(filetype("../0529")); //返回文件的类型:目录dir 文件file
var_dump(is_dir("../11.php")); //判断路径是不是目录
var_dump(is_file("../11.php")); //判断路径是不是文件
echo filesize("../11.php"); //文件大小,字节为单位
var_dump(file_exists("../12.php")); //判断文件是否存在
当前路径:./ 上级目录:../ 下级目录:目录/ 根路径:/
如果是php里面的根(/)路径代表:磁盘的根
如果是在网页里面的根(/)路径代表:服务器的根(www目录)
var_dump(pathinfo("../0529/aa.php")); //返回目录信息,格式为数组
echo realpath("../0529/aa.php"); //将相对路径转化为绝对路径
目录资源
1.创建目录(文件夹)
mkdir("./test");
2.删除目录(文件夹)只能删除空的文件夹
rmdir("./test");
3.移动目录(文件夹)
rename("./test","../test11");
touch("./test.txt");//创建文件
copy("./test.txt","../test.txt"); //复制文件
unlink("./test.docx"); //删除文件
echo file_get_contents("./test.txt"); //获取文件内容:txt 页面
文件资源
以上是关于PHP文件操作的主要内容,如果未能解决你的问题,请参考以下文章
php代码片段: sendFile/videoStream/sendEmail/phpexcel/ffmpeg/zip
VSCode自定义代码片段15——git命令操作一个完整流程