您的位置:首页 > 编程语言 > PHP开发

PHP零基础入门-文件编程

2019-01-12 17:25 260 查看

概述

文件编程是指通过PHP代码对文件夹/文件,根据需求进行增删改查的操作。
分类:目录操作,文件操作

文件夹操作

1、新增文件夹操作:mkdir(路径/文件目录名) ,前面最好加@错误抑制符
2、删除文件夹:rmdir(路径/文件目录名)
删除文件夹要求目标文件夹为空,下面没有任何文件,否则报错

3、修改文件夹:rename(‘旧名字’,‘新名字’)

4、读取文件夹:

  • 自动获取文件夹所有文件名 scandir(路径),返回数组
<?php

$dir_info=scandir('C:/Server/Apache24');
foreach ($dir_info as $key => $value) {
echo $value . '<br/>';
}
?>
  • 手动操作 opendir(路径)得到资源,然后通过readdir(路径)进行手动访问(指针操作,访问一下移动一下),最好通过closedir关闭资源
//读取前5个文件名操作

<?php

$dir_r=opendir('C:/Server/Apache24');   // 打开资源
if($dir_r) {
for($i=0;$i<5;$i++){
$filename=readdir($dir_r);
if($filename===FALSE) break;
echo $filename . '<br/>';
}
}
closedir($dir_r);                        //关闭资源
?>

文件夹的操作通常有不可知性,通常需要系统函数判断路径的有效性

  • is_dir(目录):判断是否是路径
  • getcwd():获取当前工作路径
  • rewinddir(目录资源):将opendir打开的资源重新指向第一个
  • chdir(目录):修改当前工作路径

文件操作

不仅仅是对文件进行增删改查,还涉及到文件内容的增删改查。

1、新建文件:fopen(文件名、操作模式)

<?php
$f1=@fopen('hello.html','rb') or die('文件不存在');
$f2=@fopen('hello.html','w+b');         //加b是二进制模式,为了安全
fclose($f1);                           // 释放资源
fclose($f2);
?>

2、删除文件

unlink(路径文件名)

3、修改文件
fwrite(文件资源,字符串内容)

<?php
$f=@fopen('hello.html','wb') or die('文件打开失败');
if($f) {
@fwrite($f,‘<h1>hello world</h1>’) or die('文件写入失败');
fclose($f);
}
?>

也可以使用rename()来修改文件名

4、读取文件
fread(文件资源,读取长度)

<?php
$f=@fopen('hello.php'.'r');
while(!feof($f)){
echo fread($f,1024);
}
fclose($f);
?>

一次性或者全部操作文件,开发当中常用这种方式

  • file_get_contents(文件路径)
  • file_put_contents(文件路径,内容字符串[,写入方式])
<?php
$file=file_get_contents('hello.html');
$web=file_get_contents('http://www.taobao.com/index.php');
file_put_contents('hey.html',$file);
file_put_contents('hey.html','hello world',FILE_APPEND);
?>

文件操作相关常用函数

  • file(文件路径):将整个文件以行为单位读取,返回一个数组
  • fgetc(文件资源):一次读取一个字符
  • fgets(文件资源):一次读取一行
  • file_exists(文件路径):判定一个文件或者目录是否存在
  • fseek(文件资源,指针位置):谁定fopen打开的资源的指针位置
  • fileatime(文件路径):获取文件最后访问时间
  • filemtime(文件路径):获取文件最后修改时间
  • filesize(文件路径):获取文件大小

递归算法(递归遍历文件夹)

关于递归算法:

  • 递归点:就是碰到的问题和当前函数解决的问题一样
  • 递归出口:就是函数调用要有尽头,什么时候函数能够不再调用自己
<?php
function() myscandir($dir) {
is_dir($dir) or die('当前不是一个目录');
$files=scandir($dir);
foreach($files as $file) {
echo $file,'<br/>';
if($file=='.'|| $file=='..') continue;    //过滤系统默认的空文件夹
$tmp_dir=$dir . '/' .$file;
if(is_dir($tmp_dir)){
myscandir($tmp_dir);
}
}
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: