第六章php目录与文件操作
2023-06-13 09:14:32 时间
一.目录操作
basename--返回路径中的文件名部分
dirname--返回路径中的目录部分
pathinfo--返回文件路径的信息
realpath--返回规范化的绝对路径名
复制代码代码如下:
basename--返回路径中的文件名部分
dirname--返回路径中的目录部分
pathinfo--返回文件路径的信息
realpath--返回规范化的绝对路径名
<?php
$path="demo1.php";
$path=realpath($path);
echobasename($path);
echo"<br>";
echodirname($path);
echo"<br>";
$array_path=pathinfo($path);
echo"basename:".$array_path["basename"]."<br>";
echo"dirname:".$array_path["dirname"]."<br>";
echo"extension:".$array_path["extension"]."<br>";
echo"filename:".$array_path["filename"]."<br>";
?>
Output:
demo1.php
D:\AppServ\www\Basic6
basename:demo1.php
dirname:D:\AppServ\www\Basic6
extension:php
filename:demo1
二.磁盘、目录和文件计数
1.查看文件大小和磁盘空间
filesize--取得文件大小
disk_free_space--返回目录中的可用空间
disk_total_space--返回一个目录的磁盘总大小
<?php
$path="demo2.php";
$path=realpath($path);
$drive="c:";
echoround(filesize($path)/1024,2)."kb"."<br/>";
echoround(disk_free_space($drive)/1024/1024/1024,2)."GB"."<br/>";
echoround(disk_total_space($drive)/1024/1024/1024,2)."GB"."<br/>";
?>
output
0.26kb
10.61GB
30.01GB
2.获得文件的各种时间
fileatime--取得文件的上次访问时间
filectime--取得文件的inode修改时间
filemtime--取得文件修改时间
<?php
$file=realpath("../Basic5/demo3.php");
$date_format="Y-m-dh:i:s";
echo"lastestaccessingtime:".date($date_format,fileatime($file))."<br>";
echo"lastestchangetime:".date($date_format,filectime($file))."<br>";
echo"lastestmodifytime:".date($date_format,filemtime($file))."<br>";
?>
output
lastestaccessingtime:2011-12-1804:26:49
lastestchangetime:2011-12-1804:26:49
lastestmodifytime:2011-12-1804:29:15
三.文件处理
文件读写的两种方式:
1.php所有版本都支持的方法:
fopen--打开文件或者URL
fclose--关闭一个已打开的文件指针
fwrite--写入文件(可安全用于二进制文件)
表1.fopen()中mode的可能值列表
<?php
$fp=fopen("file1.txt","w");
$outStr="mynameisanllin,\r\nmyageis29.";
fwrite($fp,$outStr,strlen($outStr));
fclose($fp);
?>
output
mynameisanllin,
myageis29.
2.php5新加入的方法
file_put_contents--将一个字符串写入文件
<?php
file_put_contents("file2.txt","mynameisanllin,\r\nmyageis29.");
?>
output
mynameisanllin,
myageis29.
读出文件内容的方法:
Fgetc()
读出一个字符,并将指针移到下一个字符
Fgets()
读出一行字符,可以指定一行显示的长度。
Fgetss()
从文件指针中读取一行并过滤掉HTML标记
Fread()
读取定量的字符
Fpassthru()
输出文件到指定处的所有剩余数据
File()
将整个文件读入数组中,以行分组
Readfile()
读入一个文件并写入到输出缓冲
File_get_contents()
将整个文件读入一个字符串
Feof()
判断读完文件函数
File_exists()
查看文件是否存在
mynameisanllin,
myageis29.
fgetc--从文件指针中读取字符
Demo.php
<?php
$fp=fopen("file1.txt","r");
echofgetc($fp);
echofgetc($fp);
fclose($fp);
?>
Output:
my
fgets--从文件指针中读取一行
<?php
$fp=fopen("file1.txt","r");
echofgets($fp);
echofgets($fp);
fclose($fp);
?>
output
mynameisanllin,myageis29.
fgetss--从文件指针中读取一行并过滤掉HTML标记
<?php
$fp=fopen("file3.txt","w");
$outStr="mynameis<b>anllin</b>";
fwrite($fp,$outStr,strlen($outStr));
fclose($fp);
$ftp=fopen("file3.txt","r");
echofgetss($ftp);
fclose($ftp);
?>
Output
mynameisanllin
fread--读取文件(可安全用于二进制文件)
<?php
$filename="file1.txt";
$fp=fopen($filename,"r");
$contents=fread($fp,filesize($filename));
echo$contents;
fclose($fp);
?>
Output
mynameisanllin,myageis29.
fpassthru--输出文件指针处的所有剩余数据
<?php
$filename="file1.txt";
$fp=fopen($filename,"rb");
$leftSize=fpassthru($fp);
echo$leftSize;
fclose($fp);
?>
output
mynameisanllin,myageis29.33
file--把整个文件读入一个数组中
<?php
$lines=file("file1.txt");
foreach($linesas$line_num=>$line)
{
echo$line_num.":".$line."<br>";
}
?>
output
0:mynameisanllin,
1:myageis29.
readfile--输出一个文件
<?php
$size=readfile("file1.txt");
echo$size;
?>
output
mynameisanllin,myageis29.33
file_get_contents--将整个文件读入一个字符串(php5.0新增)
<?php
$contents=file_get_contents("file1.txt");
echo$contents;
?>
output
mynameisanllin,myageis29.
feof--测试文件指针是否到了文件结束的位置
<?php
$fp=fopen("file1.txt","r");
while(!feof($fp))
{
echofgetc($fp);
}
fclose($fp);
?>
output
mynameisanllin,myageis29.
file_exists--检查文件或目录是否存在
<metahttp-equiv="content-type"content="text/html;charset=utf-8"/>
<?php
$filename="file1.txt";
if(file_exists($filename))
{
echo"执行文件读写操作";
}
else
{
echo"你要找的文件不存在";
}
?>
output
执行文件读写操作
filesize--取得文件大小
<?php
$file_size=filesize("file1.txt");
echo$file_size;
?>
output
33
unlink--删除文件
<?php
$isDeleted=unlink("file3.txt");
echo$isDeleted;
?>
output
1
rewind--倒回文件指针的位置
ftell--返回文件指针读/写的位置
fseek--在文件指针中定位
<?php
$fp=fopen("file1.txt","r");
fgetc($fp);
fgetc($fp);
echoftell($fp)."<br>";
rewind($fp);
echoftell($fp)."<br>";
fgetc($fp);
fgetc($fp);
echoftell($fp)."<br>";
fseek($fp,0);//sameasrewind($fp)
echoftell($fp)."<br>";
?>
output
2
0
2
0
Flock的操作值
LOCK_SH(以前为1)
读写锁定。这意味着文件可以共享,其他人可以读该文件
LOCK_EX(以前为2)
写操作锁定。这是互斥的,该文件不能被共享
LOCK_UN(以前为3)
释放已有的锁定
LOCK_NB(以前为4)
防止在请求加锁时发生阻塞
<?php
$filename="file1.txt";
$fp=fopen($filename,"rb");
flock($fp,LOCK_EX);//locked
$contents=fread($fp,filesize($filename));
flock($fp,LOCK_UN);//unlocked
echo$contents;
fclose($fp);
?>
output
mynameisanllin,myageis29.
目录句柄操作
opendir--打开目录句柄
readdir--从目录句柄中读取条目
closedir--关闭目录句柄
<?php
$dir=opendir("../Basic6");
while(!!$file=readdir($dir))
{
echo$file."<br/>";
}
closedir($dir);
?>
output
.
..
.buildpath
.project
.settings
demo1.php
demo10.php
demo11.php
demo12.php
demo13.php
demo14.php
demo15.php
demo16.php
demo17.php
demo18.php
demo19.php
demo2.php
demo20.php
demo3.php
demo4.php
demo5.php
demo6.php
demo7.php
demo8.php
demo9.php
file1.txt
file2.txt
scandir--列出指定路径中的文件和目录
<?php
$files=scandir("../Basic6");
foreach($filesas$file)
{
echo$file."<br>";
}
?>
output
.
..
.buildpath
.project
.settings
demo1.php
demo10.php
demo11.php
demo12.php
demo13.php
demo14.php
demo15.php
demo16.php
demo17.php
demo18.php
demo19.php
demo2.php
demo20.php
demo21.php
demo3.php
demo4.php
demo5.php
demo6.php
demo7.php
demo8.php
demo9.php
file1.txt
file2.txt
rename--重命名一个文件或目录
<?php
rename("demo1.php","demo01.php");
if(file_exists("demo01.php"))
{
echo"filerenamesuccess";
}
else
{
echo"filerenamefail";
}
?>
output
filerenamesuccess
rmdir--删除目录
<?php
rmdir("123");
if(file_exists("123"))
{
echo"deletefilefail";
}
{
echo"deletefilesuccess";
}
?>
output
deletefilesuccess
相关文章
- 【说站】php文件用什么软件编写
- PHP使用curl上传文件到远程服务器接口
- PHP file():把整个文件读入一个数组中
- PHP删除、复制、重命名文件
- C++/Php/Python/Shell 程序按行读取文件或者控制台详解编程语言
- 数据库PHP操作MySQL数据库的精彩之旅(php读mysql)
- PHP判断是否关注微信公众号详解编程语言
- Linux下PHP文件不解析:一次解决之旅(linuxphp不解析)
- PHP连接MySQL:实现数据交互(php与mysql连接)
- PHP实现MSSQL数据库高效操作(php操作mssql)
- 使用PHP操作Redis:简单灵活的方法(php如何使用redis)
- 完美安装:PHP环境下实现Redis扩展(php安装redis扩展)
- PHP文件快速导入MySQL数据库(php文件导入mysql)
- Linux下轻松执行PHP文件的方法(linux执行php文件)
- PHP与MySQL实现三表关联操作(mysql三表关联pHP)
- 如何隐藏你的.php文件
- php中目录,文件操作详谈
- 《PHP编程最快明白》第五讲:php目录、文件操作
- PHP数组操作汇总php数组的使用技巧
- PHP中文件读、写、删的操作(PHP中对文件和目录操作)
- php中配置文件操作如config.php文件的读取修改等操作
- PHP常用的文件操作函数经典收藏
- php笔记之:有规律大文件的读取与写入的分析
- PHP读取大文件的X行到Y行内容的实现代码
- php一行代码获取文件后缀名实例分析
- 浅析PHP文件下载原理