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 相关文章推荐
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 PHP
最省空间的计数器
Oct 09 PHP
php面向对象的方法重载两种版本比较
Sep 08 PHP
PHP实现定时生成HTML网站首页实例代码
Nov 20 PHP
中英文字符串翻转函数
Dec 09 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
Mar 03 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
php封装的表单验证类完整实例
Oct 19 PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
PHP多种序列化/反序列化的方法详解
Jun 23 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的安全
2006/10/09 PHP
PHP设计模式之结构模式的深入解析
2013/06/13 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
Joomla开启SEF的方法
2016/05/04 PHP
PHP微信API接口类
2016/08/22 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
2020/03/26 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
python 调用win32pai 操作cmd的方法
2017/05/28 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
python regex库实例用法总结
2021/01/03 Python
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
金融专业推荐信
2013/11/14 职场文书
超市总经理岗位职责
2014/02/02 职场文书