PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)


Posted in PHP onSeptember 11, 2016

本文实例总结了PHP目录与文件操作技巧。分享给大家供大家参考,具体如下:

Demo1.php

<?php
  //将一个路径赋给一个变量
  //它目前来说,只是一个字符串,字符串表示的是一个目录的路径
  //文件名包含,文件的名称 + 文件的扩展名(就是.后面的文件类型)
  //文件的扩展名说白了就是文件后缀
  $path = 'C:\AppServ\www\Basic6\Demo1.php';
// echo basename($path);
// echo '<br/>';
// //dirname -- 返回路径中的目录部分
// //dirname 返回路径的目录部分
// echo dirname($path);
// echo '<br/>';
// //获取路径文件的信息
// print_r(pathinfo($path));
  $array_path = pathinfo($path);
  echo $array_path['dirname']; //这个打印出的目录 C:\AppServ\www\Basic6
  echo $array_path['basename']; //这个打印出的是文件名 Demo1.php
?>

Demo2.php

<?php
  //这个叫做绝对路径
  //$path = 'C:\AppServ\www\Basic6\Demo2.php';
  //这个叫做相对路径
// $path = 'Demo2.php';
// echo $path;
  $path = '../index.php'; //这也是相对路径
  echo realpath($path);
?>

Demo3.php

<?php
  $path = 'C:\AppServ\www\Basic6\Demo3.php';
  echo round(filesize($path)/1024,2).'KB';
?>

Demo4.php

<?php
  //可用空间的查看 disk_free_space
  echo round(disk_free_space('C:')/1024/1024/1024,2).'GB';
  echo '<br/>';
  //总空间
  echo round(disk_total_space('C:')/1024/1024/1024,2).'GB';
?>

Demo5.php

<?php
  $path = 'C:\AppServ\www\Basic1\Demo1.php';
  //我们要做的是将这个时间戳翻译成正常的日期
  //echo fileatime($path);
  //调整一下时区
  date_default_timezone_set('Asia/Shanghai');
  //格式化一个本地日期
  //echo date('Y-m-d H:i:s');
  //fileatime -- 取得文件的上次访问时间
  echo '最后访问:'.date('Y-m-d H:i:s',fileatime($path)).'<br/>';
  //filectime -- 取得文件的 inode 修改时间,文件所有者,权限
  echo '权限所有者等:'.date('Y-m-d H:i:s',filectime($path)).'<br/>';
  //filemtime -- 取得文件修改时间,文件里面的内容修改后的时间
  echo '内容修改时间:'.date('Y-m-d H:i:s',filemtime($path));
?>

Demo6.php

<?php
  //打开一个文件
  //第一参数表明哪个文件 ,第二参数表明模式, w 只写
  //w 如果,file.txt 已经有了,并且有数据了。那么这个文件,重新创建
  //如果没有 file.txt 这个文件,那么我就自行创建
// //fopen -- 打开文件或者 URL
// //fopen 返回的是资源类型 resource,我们一般称它为句柄,或者叫资源句柄
// $fp = fopen('file.txt','w');
//
// //想文件里写入一些数据
// //fwrite($fp,"阅谁问君诵,水落清香浮。");
//
// $outString = "阅谁问君诵,水落清香浮。";
// echo strlen($outString);//获取长度
// fwrite($fp,$outString,strlen($outString));
//
// //fclose -- 关闭一个已打开的文件指针
// //当打开一个文件的时候,习惯性的将它关闭掉
// fclose($fp);
  //就只有一句话,不需要任何其他灵活的事情的使用
  //这个比较在行,只有在 PHP5 的版本才可以使用
  file_put_contents('file2.txt','阅谁问君诵,水落清香浮。');
?>

Demo7.php

<?php
  //第一种写法
  //\r\n 可以让文本文件换行
  $fp = fopen('file.txt','a');
  $outString = "阅谁问君诵,\r\n水落清香浮。\r\n";
  fwrite($fp,$outString,strlen($outString));
  fclose($fp);
  //第二种写法
// file_put_contents('file2.txt','阅谁问君诵,\r\n水落清香浮。');
?>

Demo8.php

<?php
  //现在要读出文件
  $fp = fopen('file.txt','r');
  //fgetc -- 从文件指针中读取字符
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp); //阅谁
  //fgets -- 从文件指针中读取一行
  //fread() 从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。
  //echo fgets($fp,20);
  //可以过滤HTML
  //echo fgetss($fp,20);
  //echo fread($fp,2);
  //fread() 从 handle 指向的文件中读取最多 length 个字节数
  //echo fread($fp,30);
  //fpassthru -- 输出文件指针处的所有剩余数据
  //fpassthru 本身还包含了向浏览器输出的功能,所以不需要 echo
  echo fpassthru($fp);
  fclose($fp);
?>

Demo9.php

<?php
  //file -- 把整个文件读入一个数组中
  //file 是按照每行来分组存放在一个数组中
  //print_r(file('file.txt'));
  //而这个打印出的是文件中的第二行。
// $array_file = file('file.txt');
// echo $array_file[4];
  //readfile -- 输出一个文件
  //readfile 是将整个文件读出来,readfile 本身能够直接输入浏览器,所以不需要 echo
  //返回值是文件字节的总长度
  //echo readfile('file.txt');
  //file_get_contents -- 将整个文件读入一个字符串
  //file_get_contents 可以读入数据到缓冲区,然后通过 echo 来打印
  echo file_get_contents('file.txt');
?>

Demo10.php

<?php
  //现在要读出文件
  $fp = fopen('file.txt','r');
  //feof -- 测试文件指针是否到了文件结束的位置
  while (!feof($fp)){
    echo fgetc($fp);
  }
  fclose($fp);
?>

Demo11.php

<?php
  //比如读取一个文件的时候,你必须保证这个文件一定要存在,才可以操作
  //否则就报错,不让执行
  //这个时候就有必须做一个检测
  //file_exists -- 检查文件或目录是否存在
  if(file_exists('file.txt')){
    echo '执行各种各样的文本读写操作!';
  }else{
    echo '此本文不存在,请管理员在后台重新生成一下。';
  }
?>

Demo12.php

<?php
  //文本大小,字节
  //echo filesize('file.txt');
  //删除一个文件
  //unlink('a.txt');
  //rewind -- 倒回文件指针的位置
  //ftell -- 返回文件指针读/写的位置
  //rewind -- 倒回文件指针的位置
  //a 表示可以追加,b 表示二进制,这样可移植性好
  //w
  $fp = fopen('file.txt','ab');
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp);
// rewind($fp);
// echo ftell($fp);
// fseek($fp,20);
// echo ftell($fp);
// echo fgetc($fp);
// echo fgetc($fp);
  flock($fp,LOCK_EX);//锁定
  fwrite($fp,'This is lock!');
  flock($fp,LOCK_UN);//解锁
  fclose($fp);
?>

Demo13.php

<?php
// //打开一个目录
// @$dir = opendir('C:\AppServ\www\Basic6');
// //读出目录,使用一个循环来读出
// //readdir -- 从目录句柄中读取条目
// //字符串如果是布尔值,就是说,字符串不为空,那么就是真,为空就是假
// while (!!$file = readdir($dir)){
//   echo $file.'<br/>';
// }
// //关闭
// @closedir($dir);
  //print_r(scandir('C:\AppServ\www\Basic6'));
  //删除一个目录
// //绝对路径的删除目录
// rmdir('C:\AppServ\www\Basic6\delMe');
// //相对路径的删除目录
// rmdir('delMe');
  //删除一个文件
  //ssunlink('file2.txt');
  //重命名,这里,目录和文件都能改
  //rename('file.txt','file2.txt');
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
实用函数7
Nov 08 PHP
php笔记之:数据类型与常量的使用分析
May 14 PHP
php生成图片验证码
Jun 09 PHP
浅谈php的优缺点
Jul 14 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
理解php依赖注入和控制反转
May 11 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
laravel实现前后台路由分离的方法
Oct 13 PHP
PHP tp5中使用原生sql查询代码实例
Oct 28 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 #PHP
PHP入门教程之数学运算技巧总结
Sep 11 #PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 #PHP
PHP基本语法实例总结
Sep 09 #PHP
php入门教程之Zend Studio设置与开发实例
Sep 09 #PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 #PHP
PHP实现支持加盐的图片加密解密
Sep 09 #PHP
You might like
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
node.js [superAgent] 请求使用示例
2015/03/13 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
python测试mysql写入性能完整实例
2018/01/18 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
python实现代码审查自动回复消息
2021/02/01 Python
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
音乐器材管理制度
2014/01/31 职场文书
给下属加薪申请报告
2015/05/15 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers