源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

第六章 php目录与文件操作

  • 时间:2020-07-17 03:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:第六章 php目录与文件操作
一.目录操作 basename -- 返回路径中的文件名部分 dirname -- 返回路径中的目录部分 pathinfo -- 返回文件路径的信息 realpath -- 返回规范化的绝对路径名
[u]复制代码[/u] 代码如下:
<?php $path = 'demo1.php'; $path = realpath($path); echo basename($path); echo '<br>'; echo dirname($path); echo '<br>'; $array_path = pathinfo($path); echo 'basename : '.$array_path['basename'].'<br>'; echo 'dirname : '.$array_path['dirname'].'<br>'; echo 'extension : '.$array_path['extension'].'<br>'; echo 'filename : '.$array_path['filename'].'<br>'; ?>
Output: demo1.php D:AppServwwwBasic6 basename : demo1.php dirname : D:AppServwwwBasic6 extension : php filename : demo1 二.磁盘、目录和文件计数 1.查看文件大小和磁盘空间 filesize -- 取得文件大小 disk_free_space -- 返回目录中的可用空间 disk_total_space -- 返回一个目录的磁盘总大小
[u]复制代码[/u] 代码如下:
<?php $path ='demo2.php'; $path = realpath($path); $drive = 'c:'; echo round(filesize($path)/1024,2).'kb'.'<br/>'; echo round(disk_free_space($drive)/1024/1024/1024,2).'GB'.'<br/>'; echo round(disk_total_space($drive)/1024/1024/1024,2).'GB'.'<br/>'; ?>
output 0.26kb 10.61GB 30.01GB 2.获得文件的各种时间 fileatime -- 取得文件的上次访问时间 filectime -- 取得文件的 inode 修改时间 filemtime -- 取得文件修改时间
[u]复制代码[/u] 代码如下:
<?php $file = realpath ( '../Basic5/demo3.php' ); $date_format = 'Y-m-d h:i:s'; echo 'lastest accessing time : '.date ( $date_format, fileatime ( $file ) ) . '<br>'; echo 'lastest change time : '.date ( $date_format, filectime ( $file ) ) . '<br>'; echo 'lastest modify time : '.date ( $date_format, filemtime ( $file ) ) . '<br>'; ?>
output lastest accessing time : 2011-12-18 04:26:49 lastest change time : 2011-12-18 04:26:49 lastest modify time : 2011-12-18 04:29:15 三.文件处理 文件读写的两种方式: 1.php所有版本都支持的方法: fopen -- 打开文件或者 URL fclose -- 关闭一个已打开的文件指针 fwrite -- 写入文件(可安全用于二进制文件) 表 1. fopen() 中 mode 的可能值列表
[b]mode[/b][b][/b] [b]说明[/b]
'r' 只读方式打开,将文件指针指向文件头。
'r+' 读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则[b]fopen()[/b] 调用失败并返回[b]FALSE[/b],并生成一条[b]E_WARNING[/b] 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则[b]fopen()[/b] 调用失败并返回[b]FALSE[/b],并生成一条[b]E_WARNING[/b] 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
[u]复制代码[/u] 代码如下:
<?php $fp = fopen('file1.txt','w'); $outStr = "my name is anllin,rnmy age is 29."; fwrite($fp,$outStr,strlen($outStr)); fclose($fp); ?>
output my name is anllin, my age is 29. 2.php5新加入的方法 file_put_contents -- 将一个字符串写入文件
[u]复制代码[/u] 代码如下:
<?php file_put_contents('file2.txt',"my name is anllin,rnmy age is 29."); ?>
output my name is anllin, my age is 29. 读出文件内容的方法:
[b]函数[/b][b][/b] [b]功能[/b][b][/b]
Fgetc() 读出一个字符,并将指针移到下一个字符
Fgets() 读出一行字符,可以指定一行显示的长度。
Fgetss() 从文件指针中读取一行并过滤掉HTML标记
Fread() 读取定量的字符
Fpassthru() 输出文件到指定处的所有剩余数据
File() 将整个文件读入数组中,以行分组
Readfile() 读入一个文件并写入到输出缓冲
File_get_contents() 将整个文件读入一个字符串
Feof() 判断读完文件函数
File_exists() 查看文件是否存在
示例文件file1.txt的内容如下: my name is anllin, my age is 29. fgetc -- 从文件指针中读取字符 Demo.php
[u]复制代码[/u] 代码如下:
<?php $fp = fopen('file1.txt','r'); echo fgetc($fp); echo fgetc($fp); fclose($fp); ?>
Output: my fgets -- 从文件指针中读取一行
[u]复制代码[/u] 代码如下:
<?php $fp = fopen('file1.txt','r'); echo fgets($fp); echo fgets($fp); fclose($fp); ?>
output my name is anllin, my age is 29. fgetss -- 从文件指针中读取一行并过滤掉 HTML 标记
[u]复制代码[/u] 代码如下:
<?php $fp = fopen('file3.txt','w'); $outStr = "my name is <b>anllin</b>"; fwrite($fp,$outStr,strlen($outStr)); fclose($fp); $ftp = fopen('file3.txt','r'); echo fgetss($ftp); fclose($ftp); ?>
Output my name is anllin fread -- 读取文件(可安全用于二进制文件)
[u]复制代码[/u] 代码如下:
<?php $filename = 'file1.txt'; $fp = fopen($filename,'r'); $contents = fread($fp,filesize($filename)); echo $contents; fclose($fp); ?>
Output my name is anllin, my age is 29. fpassthru -- 输出文件指针处的所有剩余数据
[u]复制代码[/u] 代码如下:
<?php $filename = 'file1.txt'; $fp = fopen($filename,'rb'); $leftSize = fpassthru($fp); echo $leftSize; fclose($fp); ?>
output my name is anllin, my age is 29. 33 file -- 把整个文件读入一个数组中
[u]复制代码[/u] 代码如下:
<?php $lines = file('file1.txt'); foreach ($lines as $line_num => $line) { echo $line_num.' : '.$line.'<br>'; } ?>
output 0 : my name is anllin, 1 : my age is 29. readfile -- 输出一个文件
[u]复制代码[/u] 代码如下:
<?php $size = readfile('file1.txt'); echo $size; ?>
output my name is anllin, my age is 29.33 file_get_contents -- 将整个文件读入一个字符串(php5.0新增)
[u]复制代码[/u] 代码如下:
<?php $contents = file_get_contents('file1.txt'); echo $contents; ?>
output my name is anllin, my age is 29. feof -- 测试文件指针是否到了文件结束的位置
[u]复制代码[/u] 代码如下:
<?php $fp = fopen('file1.txt','r'); while(!feof($fp)) { echo fgetc($fp); } fclose($fp); ?>
output my name is anllin, my age is 29. file_exists -- 检查文件或目录是否存在
[u]复制代码[/u] 代码如下:
<meta http-equiv="content-type" content="text/html;charset=utf-8"/> <?php $filename = 'file1.txt'; if(file_exists($filename)) { echo '执行文件读写操作'; } else { echo '你要找的文件不存在'; } ?>
output 执行文件读写操作 filesize -- 取得文件大小
[u]复制代码[/u] 代码如下:
<?php $file_size = filesize('file1.txt'); echo $file_size; ?>
output 33 unlink -- 删除文件
[u]复制代码[/u] 代码如下:
<?php $isDeleted = unlink('file3.txt'); echo $isDeleted; ?>
output 1 rewind -- 倒回文件指针的位置 ftell -- 返回文件指针读/写的位置 fseek -- 在文件指针中定位
[u]复制代码[/u] 代码如下:
<?php $fp = fopen ( 'file1.txt', 'r' ); fgetc ( $fp ); fgetc ( $fp ); echo ftell ( $fp ) . '<br>'; rewind ( $fp ); echo ftell ( $fp ) . '<br>'; fgetc ( $fp ); fgetc ( $fp ); echo ftell ( $fp ) . '<br>'; fseek($fp,0);//same as rewind ($fp) echo ftell ( $fp ) . '<br>'; ?>
output 2 0 2 0 Flock的操作值
[b]操作值[/b][b][/b] [b]意义[/b][b][/b]
LOCK_SH(以前为1) 读写锁定。这意味着文件可以共享,其他人可以读该文件
LOCK_EX(以前为2) 写操作锁定。这是互斥的,该文件不能被共享
LOCK_UN(以前为3) 释放已有的锁定
LOCK_NB(以前为4) 防止在请求加锁时发生阻塞
flock -- 轻便的咨询文件锁定
[u]复制代码[/u] 代码如下:
<?php $filename = 'file1.txt'; $fp = fopen($filename,'rb'); flock($fp,LOCK_EX);//locked $contents = fread($fp,filesize($filename)); flock($fp,LOCK_UN);//unlocked echo $contents; fclose($fp); ?>
output my name is anllin, my age is 29. 目录句柄操作 opendir -- 打开目录句柄 readdir -- 从目录句柄中读取条目 closedir -- 关闭目录句柄
[u]复制代码[/u] 代码如下:
<?php $dir= opendir('../Basic6'); while(!!$file = readdir($dir)) { echo $file.'<br/>'; } closedir($dir); ?>
output . .. .buildpath .project .settings demo1.php demo10.php demo11.php demo12.php demo13.php demo14.php demo15.php demo16.php demo17.php demo18.php demo19.php demo2.php demo20.php demo3.php demo4.php demo5.php demo6.php demo7.php demo8.php demo9.php file1.txt file2.txt scandir -- 列出指定路径中的文件和目录
[u]复制代码[/u] 代码如下:
<?php $files = scandir('../Basic6'); foreach($files as $file) { echo $file.'<br>'; } ?>
output . .. .buildpath .project .settings demo1.php demo10.php demo11.php demo12.php demo13.php demo14.php demo15.php demo16.php demo17.php demo18.php demo19.php demo2.php demo20.php demo21.php demo3.php demo4.php demo5.php demo6.php demo7.php demo8.php demo9.php file1.txt file2.txt rename -- 重命名一个文件或目录
[u]复制代码[/u] 代码如下:
<?php rename('demo1.php','demo01.php'); if(file_exists('demo01.php')) { echo 'file rename success'; } else { echo 'file rename fail'; } ?>
output file rename success rmdir -- 删除目录
[u]复制代码[/u] 代码如下:
<?php rmdir('123'); if(file_exists('123')) { echo 'delete file fail'; } { echo 'delete file success'; } ?>
output delete file success
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部