这里有新鲜出炉的 PHP 教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 PHP 目录与文件操作技巧, 结合实例形式总结分析了 php 针对文件与目录的获取、运算、打开、创建、读取、写入、修改、删除、判断等常见操作技巧, 需要的朋友可以参考下
本文实例总结了 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 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0805/342813.html