处理文件目录
一.文件目录查询
所有代码的路径都已我自己为例
一.读取目录和目录下
1.php整页编
header("content-type;text/html;charset=gbk");
2.读取目录和目录下有什么值
列出目录下的文件列表
$dir="D:\PHPStorm";
方法一:用循环输出每次读取的内容。将路径下查找的文件夹里的所有文件名标记蓝色,其他输出。每读一次换一行。
<?php
$dir="D:\PHPStorm";
$dh=opendir($dir);//1.获取操作的目录句柄。返回值是资源类型看不到
while($filename=readdir($dh)){
// 找到文件夹。得到反正目录$filename。/是目录,需要转义
if(is_dir($dir."\\".$filename))
echo "<font color='blue'>$filename</font>";
else
echo $filename;
echo "<br>";
}
closedir($dh);//2.关闭目录句柄
?>
效果:
一个点·.本层目录,两个点…上层目录.。目录是dir
从我的文件下查看都是正确对应
不用循环的话每次都用输入一个readdir才能得到filename
$filename=readdir($dh);
echo $filename;
$filename=readdir($dh);
echo $filename;
3.关闭目录句柄
closedir($dh);
方法二:扫描目录foreach循环找到一个$value
<?php
header("content-type;text/html;charset=gbk");
$dir="D:\PHPStorm";
$filelist=scandir($dir);//扫描目录
var_dump($filelist);//目录返回值类型
//按照之前的方法一展示
//foreach ($filelist as key =>$value){
foreach ($filelist as $value) {
echo "<font color='blue'>$value</font>";
echo "<br>";
// echo $value."<br>";
}
echo "<hr>";
?>
效果
二.计算文件大小
1.计算我在这个文件夹中poem.txt文件的大小(字节数)
<?php
header("content-type:text/html;charset=utf-8");
//计算文件大小
$file="poem.txt";
//加速呢文件大小需要文件路径$file
//392字节数
echo filesize($file);
echo "<br>";
?>
2.计算磁盘余量
<?php
header("content-type:text/html;charset=utf-8");
$dir="d:\\";
$space=disk_free_space($dir);
$space=round($space/(1024*1024*1024),2);//round保留2位小数
echo "{$dir}盘还剩下".$space."G";
echo "<br>";
?>
效果:
3.计算磁盘总量
<?php
header("content-type:text/html;charset=utf-8");
$dir="d:\\";
$space=disk_free_space($dir);
$space=disk_total_space($dir);
$space=round($space/(1024*1024*1024),2);
echo "{$dir}盘一共有".$space."G";
echo "<br>";
?>
效果
4.如何计算目录大小?递归不断调用自身函数
三.如何读取文件
1.一些基本操作和指令
<?php
//如何读取文件
header("content-type:text/html;charset=utf-8");
$file="poem.txt";//$file="http://www.baidu.com";
// r+具有读写属性,从文件头开始写,保留原文件中没有被覆盖的内容;
// w+具有读写属性,写的时候如果文件存在,会被清空,从头开始写。
// r 打开只读文件,该文件必须存在。
// r+ 打开可读写的文件,该文件必须存在。
// w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
// w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
// a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
// a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
$fp=fopen($file,"r"); //将文件绑定到一个句柄
fclose($fp);//关闭句柄,撤销指针
?>
2.打印文件内容
$poem=file("poem.txt"); //返回数组
var_dump($poem);
3.读取文件方法1:
<?php
header("content-type:text/html;charset=utf-8");
$poem=file("poem.txt"); //返回数组
//打印数组内容就是文件的内容
foreach($poem as $p){
echo $p;
echo "<br>";
}
echo "<hr>";
?>
效果
poem.txt文件是
4.读取文件方法1-1:
<?php
$book=file("books.txt"); //返回数组
foreach($book as $b){
//变量操作数组,操作方便。explode是切割作用
//序列解包python
//list中参数可以更多,可读性好。比数组操作方便
list($bookname,$author,$hero)=explode("|",$b);
echo "《{$bookname}》,作者是{$author},主角是$hero<br>";
}
echo "<hr>";
?>
books.txt内容
效果
5.读取文件方法2:
- 输出文件没处理的格式(文件内容是什么样就输出什么)
<?php
$poemstr=file_get_contents("poem.txt");
echo "<pre>$poemstr</pre>";
?>
- 真实文本内容。没有每句分隔之前
<?php
$poemstr=file_get_contents("poem.txt");
echo ($poemstr);//真实文本内容。没有每句分隔之前
?>
- 读取文件类型
<?php
$poemstr=file_get_contents("poem.txt");
var_dump($poemstr);//可以看出$poemstr是字符串类型
?>
- windows换行符\r\n,文档结束符EOF
<?php
$poemstr=file_get_contents("poem.txt");
$poem = str_ireplace("\r\n","<br>",$poemstr);//windows换行符\r\n,文档结束符EOF
echo $poem;
?>
- 每行分隔看,小诗有空行,通过var_dump看出(字符串长度)
<?php
$poemstr=file_get_contents("poem.txt");
$arr=explode("\r\n",$poemstr);
var_dump($arr);
echo "<hr>";
?>
6.读取文件方法3:
<?php
$file="poem.txt";
$fp=fopen($file,"r"); //将文件绑定到一个句柄。一次只能读一行所以用while循环,因为内部有一个指针
while(!feof($fp)){
echo fgets($fp); //一次读一行
echo "<br>";
}
fclose($fp);//关闭句柄,撤销指针
echo "<hr>";
?>
7.读取文件方法4:
<?php
$file="poem.txt";
$fp=fopen($file,"r"); //将文件绑定到一个句柄
$content1=fread($fp,filesize($file));//参数是读取什么,还有文件大小
echo $content1;
fclose($fp);//关闭句柄,撤销指针
echo "<hr>";
$fp=fopen($file,"r");
$content2=fread($fp,100);//读取一部分。100字节
echo $content2;
fclose($fp);//关闭句柄,撤销指针
echo "<hr>";
?>
删除文件
在c盘下放个文件夹命名123
在文件夹放个456.txt,然后操作删除该文本
<?php
//删除一个文件夹
if(file_exists("C:\123"))
rmdir("C:\123");
//删除一个文件
@unlink('C:\123\456.txt');
//执行系统命令(参数:执行的命令和命令的返回值)
exec("ipconfig",$t);
var_dump($t) ;
echo "<hr>";
?>
- ping操作
<?php
exec("ping www.baidu.com",$t);
var_dump($t) ;
?>
- system
<?php
echo "<hr>";
$t=system("dir");
var_dump($t) ;
?>