您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
2-9 文件及目录处理相关考点
发布时间:2020-10-03 17:27:22编辑:雪饮阅读()
对已有文件内容的文件进行内容开头追加写入(用fwrite)
对该需求有一个需要注意的就是不能直接用fopen同时以读写模式打开,这样在写的时候就会出现某些时候我们输入内容时候会发现将逐一替换我们输入位置开始每输入一次内容都会替换该输入位置后面的一个字符的问题,那么妥善的解决办法是读写分离。
<?php
function myDump($val){
echo "<pre>";
print_r($val);
echo "</pre>";
}
$file='./hello.txt';
//读
$handle=fopen($file,'r');
$content=fread($handle,filesize($file));
$content='Hello World'.$content;
fclose($handle);
//写
$handle=fopen($file,'w');
fwrite($handle,$content);
fclose($handle);
那么如此以来每运行一次我们目标文件的内容都会自动追加(开头追加)
目录的遍历
目录遍历主要注意的就是子目录、制表符(缩进)、目录名为“0”、每级目录的当前目录及上级目录(.与..)等。
<?php
function myDump($val){
echo "<pre>";
print_r($val);
echo "</pre>";
}
function loopDir($dir){
static $prefix="";
$handle=opendir($dir);
//用非全等是因为有可能存在“0”这样的目录名,会被错误认为为false
while(false!==($file=readdir($handle))){
//每个目录中的当前目录和上级目录不处理
myDump($prefix.$file);
if($file!='.' && $file!='..'){
//若仍旧是目录则递归遍历
if(filetype($dir.'/'.$file)=='dir'){
$prefix.="\t";
loopDir($dir.'/'.$file);
}
}
}
}
$dir="./img";
loopDir($dir);
那么运行结果如:
.
..
icons
.
..
android-chrome-192x192.png
android-chrome-512x512.png
android-chrome-maskable-192x192.png
android-chrome-maskable-512x512.png
apple-touch-icon-120x120.png
apple-touch-icon-152x152.png
apple-touch-icon-180x180.png
apple-touch-icon-60x60.png
apple-touch-icon-76x76.png
apple-touch-icon.png
favicon-16x16.png
favicon-32x32.png
msapplication-icon-144x144.png
mstile-150x150.png
safari-pinned-tab.svg
logo.82b9c7a5.png
关键字词:php,文件,目录,目录遍历,opendir,fwrite,readdir,filetype
上一篇:2-8 正则表达式考察点
下一篇:4-1 Linux基础考察点