当前位置: 首页 > news >正文

实力网站建设/安徽网站关键字优化

实力网站建设,安徽网站关键字优化,简要描述网站建设的基本步骤,二十条疫情新政策文章目录 文件编程的必要性目录操作其它目录操作递归遍历目录PHP5常见文件操作函数PHP4常见文件操作函数其他文件操作函数 文件编程的必要性 文件编程指利用PHP代码针对文件(文件夹)进行增删改查操作。 在实际开发项目中,会有很多内容&…

文章目录

  • 文件编程的必要性
  • 目录操作
  • 其它目录操作
  • 递归遍历目录
  • PHP5常见文件操作函数
  • PHP4常见文件操作函数
  • 其他文件操作函数

文件编程的必要性

文件编程指利用PHP代码针对文件(文件夹)进行增删改查操作。

在实际开发项目中,会有很多内容(文件上传、配置文件等)具有很多不确定性,不能在一开始就手动的创建,需要根据实际需求和数据本身来进行管理,这个时候就可以使用PHP文件编程来实现代码批量控制和其他操作。


文件操作的分类

1) 目录操作:文件夹,用来存放文件的特殊文件

2) 文件操作:用来存放内容

目录操作

创建目录

1.mkdir(目录名):创建成功返回true,创建失败返回false

2.创建目录可以结合错误抑制符使用。因为有些操作为的就是得到一个想要的结果,如果结果本身就存在,那么可以忽略得到过程的错误:抑制错误。

  • 例如:上面想要创建的文件夹本身就存在
$res = @mkdir('dir');

删除目录

rmdir(指定文件夹路径):移出文件夹

@rmdir('dir');

读取目录

读取方式:将文件夹(路径)按照资源方式打开

1.opendir(目录名):打开资源,返回一个路径资源,包含指定目录下的所有文件(文件夹)

2.readdir(路径资源):从资源中读取指针所在位置的文件名字,然后指针下移,直到指针移出资源

  • 如果想要读取所有内容,那么此时可以使用while或者for进行循环操作
$r = @opendir('dir');
while($file = readdir($r))
{echo $file,'<br/>';
}

关闭目录

closedir(路径资源)


其它目录操作

1)dirname(路径):得到的是路径的上一层路径

  • 作用:可以得到路径的前缀
$dir1 = 'D:/Mango/Lemon/Test.php';
$dir2 = 'D:/Mango/Lemon/Test/test.php';
echo dirname($dir1)," ",dirname($dir2);//D:/Mango/Lemon  D:/Mango/Lemon/Test

注意:dirname只是根据字符串返回,无论该路径在电脑上是否存在

2)realPath(一个路径):如果文件存在,返回该文件路径。如果文件不存在,返回false

$dir1 = 'Z:/1.md';
$dir2 = 'Z:/2.md';
var_dump(realpath($dir1),realpath($dir2));//string(7) "Z:\1.md" bool(false)

3)is_dir(路径):判断指定路径是否是一个目录,如果该路径不存在&不是目录:返回false

$dir1 = 'D:/';
$dir2 = 'D:/Mango/Lemon/Test/test.php';
var_dump(is_dir($dir1),is_dir($dir2));//bool(true) bool(false)

4)scandir(路径):封装版的opendir+readdir+closedir,获取一个指定路径下的所有文件信息,以数组形式返回

var_dump(scandir('dir'));//array(3) { [0]=> string(1) "." [1]=> string(2) ".." [2]=> string(4) "ddir" }

递归遍历目录

递归遍历目录:指定一个目录的情况下,将其下的所有文件和目录,及其目录内部的所有内容都输出出来。

思路

  • 设计一个能够遍历一层文件的函数function my_scandir($dir)

1.首先要判断$dir是否是目录,如果不是目录,直接终止

2.使用scandir读取dir目录下的所有内容(文件+子目录)

3.遍历读取到的所有内容

  • 此时需要构造文件路径(因为遍历得到的结果只是文件的名字) & 并且需要排除...文件,否则会导致死循环

  • 找到递归点:遍历得到的文件是目录,应该调用当前函数(调用自己),判断构建好的路径是目录还是普通文件,如果是目录,则调用自身函数

4.找到递归出口:遍历完这个文件夹之后,发现没有任何子文件夹(函数不再调用自己):自带递归出口

问题:如何显示层级关系

函数第一次运行遍历的结果是最外层目录,内部调用一次说明进入一个子目录,子目录再调用一次函数进入孙子目录,如果能够在第一次调用的时候给个标记,然后在进入的时候,通过标记的变化来识别层级关系,就可以达到目的:该标记还能代表层次关系:缩进

方法:可以在函数当中多增加一个参数,默认值为0,标识最外层

  • 递归调用函数的时候也需要使用该参数:但是是属于当前层级的子层,所以+1

注意:递归调用的时候,是level+1,而不是level++,因为要回溯回来,如果是++就会导致level的值发生改变

根据层级来实现缩进

可以使用str_repeat函数,作用是:重复一个字符串多少次,在这里我们的层级用空格来表示即可

  • str_repeat("&nbsp;&nbsp;",$level)) ==>重复两个空格level次

整体代码

//递归遍历目录
//参数1:路径名  参数2:当前层级,默认是0,表示最外层
function my_scandir($dir,$level = 0)
{//1.首先判断该路径是否是一个目录,如果不是,直接结束if(!is_dir($dir))die($dir.'<br/>'); //die() 函数输出一条消息,并退出当前脚本。//2.使用scandir函数获取当前路径下所有文件信息,以数组形式返回$file_array = scandir($dir);//3.遍历路径下的所有内容foreach($file_array as $file){//$file代表的就是文件名/文件夹名//根据文件层级显示对应的空格数echo str_repeat("&nbsp;&nbsp;",$level),$file.'<br/>';//排除.和..  防止死递归if($file == '.' || $file == '..') continue;//因为$file只是文件名,所以要构造路径$file_dir = $dir.'/'.$file; //利用到了 .连接符//验证: echo $file_dir;//如果是目录,那么就递归if(is_dir($file_dir))my_scandir($file_dir,$level+1);}
}
$dir = 'dir';
my_scandir($dir);

效果

image-20230802144808964


PHP5常见文件操作函数

1)file_get_contents(文件路径):获取指定文件的所有内容

  • 如果路径不存在最好做安全处理 ==> 错误抑制
$file = 'read.txt';
$content = @file_get_contents($file);
echo $content;//hello I am read.txt Mango Lemon

2)file_put_contents(文件路径,内容)将指定内容写入到指定文件内:如果当前路径下不存在指定的文件,函数会自动创建(如果路径不存在,不会创建路径)

  • 返回值:返回写入的字符串长度(字节)
$file = 'read.txt';
// $content = @file_get_contents($file);
$test = 'hello world';
$res = file_put_contents($file,$test);echo $res;//11

PHP4常见文件操作函数

PHP4中是将文件操作用资源形式处理:不论是读还是写都依赖资源指针:文件内容中指针所在位置

1)fopen(文件路径,打开模式):打开一个文件资源,返回值资源指针,要指定打开模式

2)fread(资源指针,长度):从打开的资源中读取指定长度的内容(字节)

3)fwrite(资源指针,内容):向打开的资源中写入指定的内容

4)fclose(资源):关闭资源

$file_name = 'read.txt';
$fp = fopen($file_name,'r');//以读方式打开
$content = fread($fp,1024);
echo $content; //hello world hello world dwadaw dwadaw
fclose($fp);

其他文件操作函数

1)is_file():判断文件是否正确(不识别路径)

$filename = 'example.txt';
if (is_file($filename)) {echo "The file exists and is a regular file.";
} else {echo "The file does not exist or is not a regular file.";
}

2)filesize():获取文件大小

$filename = 'example.txt';
$filesize = filesize($filename);
echo "The size of the file is: " . $filesize . " bytes";

3)file_exists():判断文件是否存在(识别路径)

$filename = 'example.txt';
if (file_exists($filename)) {echo "The file exists.";
} else {echo "The file does not exist.";
}

4)unlink():取消文件名字与磁盘地址的连接(删除文件)

$filename = 'example.txt';
if (file_exists($filename)) {unlink($filename);echo "File deleted successfully.";
} else {echo "File does not exist, cannot delete.";
}

5)filemtime():获取文件最后一次修改的时间

$filename = 'example.txt';
if (file_exists($filename)) {$lastModified = filemtime($filename);echo "Last modified: " . date("Y-m-d H:i:s", $lastModified);
} else {echo "File does not exist.";
}

6)fseek():设定fopen打开的文件的指针位置

$filename = 'example.txt';
$fp = fopen($filename, 'r');
fseek($fp, 50); // Set the pointer position to byte 50 from the beginning of the file
// Perform other operations here, like reading or writing
fclose($fp);

7)fgetc():一次获取一个字符

$filename = 'example.txt';
$fp = fopen($filename, 'r');
$char = fgetc($fp); // Read one character from the file
echo "The first character in the file is: " . $char;
fclose($fp);

8)fgets():一次获取一个字符串(默认行)

$filename = 'example.txt';
$fp = fopen($filename, 'r');
$line = fgets($fp); // Read one line from the file
echo "The first line in the file is: " . $line;
fclose($fp);

9)file():读取整个文件,类似file_get_contents,区别是按行读取,返回一个数组

$filename = 'example.txt';
$lines = file($filename); // Read the entire file into an array
foreach ($lines as $line) {echo $line . "<br>";
}
http://www.jmfq.cn/news/5329315.html

相关文章:

  • 普洱住房和城乡建设委员会网站/个人怎么做免费百度推广
  • 绵阳企业网站建设/建站平台在线提交功能
  • 中升乙源建设公司网站/最有效的宣传方式
  • 乐云seo网站建设性价比高/免费网站制作app
  • 微商城网站建设推广/企业网络宣传推广方案
  • 网站建设公司海报/如何在百度推广自己
  • 建设银行辽宁分行报名网站/中国seo排行榜
  • 聊城宏远网站建设优化/原创代写文章平台
  • 番禺网站建设设计/武威网站seo
  • 东莞网站建设设计/35个成功的市场营销策划案例
  • 成都市建设局网站/百度高级搜索
  • 住房和建设部网站/自媒体引流推广
  • 陕西省建设工程质量监督站网站/杭州百度快速排名提升
  • 德州力点科技 网站建设/百度的seo排名怎么刷
  • 阳澄湖大闸蟹网站建设/成都网站排名优化公司
  • 广东深圳建设工程信息网站/2022年关键词排名
  • 东莞易宣网站建设公司怎么样/黑马培训
  • 郯城建设银行网站/南宁网站推广大全
  • 人大网站建设方案 文库/长沙seo优化排名
  • 高端网站建设需要的人员配备/天津百度关键词排名
  • 白云区手机版网站建设/网络营销和传统营销的区别
  • 深圳公司网站建设案例/sns营销
  • 简述使用asp建设动态网站/网站建设开发
  • 网站建设的软硬件环境/什么是全网营销推广
  • 南京建设银行网站首页/淄博网站推广
  • 网站建设实训设备/自己做一个网站需要什么
  • 企业网站建设参考文献/百度网盘app官方下载
  • 常州模板网站建设咨询/网络推广的方式有哪些?
  • 南通精诚建设集团有限公司网站/yoast seo
  • 如何建设自己的摄影网站/软文营销文章300字