PHP-课堂⑨

处理文件目录

一.文件目录查询

所有代码的路径都已我自己为例
一.读取目录和目录下
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) ;
?>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41056807/article/details/83185514