PHP文件及目录

文章目录


在系统的每个目录下,都有两个特殊的目录 ‘.’ 和’…’,分别表示当前目录和上一级目录。在UNIX和Windows系统中,都建议使用 ‘/’ 作为文件的路径分隔符;PHP中还可以使用DIRECTORY_SEPARATOR 来获得系统默认的文件分隔符。
##目录相关函数

  • basename() 返回路径中的文件名
$path = '/demo_dir/demo_dir2/hello.txt';

// 输出 hello.txt
echo basename($path);
  • dirname() 返回文件名的路径
$path = '/demo_dir/demo_dir2/hello.txt';

// 输出 /demo_dir/demo_dir2
echo dirname($path);
  • pathinfo() 返回目录名、文件名、和扩展名的关联数组
$path = '/demo_dir/demo_dir2/hello.txt';

var_dump(pathinfo($path));
 
 输出的结果:
 array(4) {
  ["dirname"]=>
  string(19) "/demo_dir/demo_dir2"
  ["basename"]=>
  string(9) "hello.txt"
  ["extension"]=>
  string(3) "txt"
  ["filename"]=>
  string(5) "hello"
}

  • opendir() 打开指定目录,返回目录句柄。一般先返回 ‘.’ 和 ‘…’ 两个特殊的目录

  • readdir($dir_handle = null) 返回目录下的第一个文件名,并将指针向移动一位

  • closedir($dir_handle = null) 关闭指定目录

  • rewinddir($dir_handle = null) 将目录的指针重置到目录的开头

  • rmdir($dirname) 删除目录

  • mkdir ($pathname) 创建目录

  • unlink 删除文件
    -rename 重命名文件或者目录

##文件及磁盘大小

  • filesize() 计算文件的大小
  • disk_free_space() 磁盘剩余空间大小
  • disk_total_space() 磁盘总大小

##文件读写操作

  • fopen(filename,mode,include_path,context) 打开文件或者url,其中path可以是绝对路径,也可以是相对路径,我们一般使用绝对路径
    这里写图片描述
  • fwrite() 写入,等同于 fputs
  • fgets() 读取一行
  • fgetc() 读取一个字符
  • fread() 读取指定的长度

看一个简单的例子

    $contents = 'fread_';
    $base_path = '/usr/share/nginx/html/phpstaff/public';
    // 这里的路径一般指绝对路径
    $filename = $base_path . '/demo_dir/demo_dir2/hellol.txt';
    $handle = fopen($filename, 'r') or die('没有找到该文件');
    while (!feof($handle)) {
        $contents .= fread($handle, 1024);
    }
    var_dump($contents);
    fclose($handle);

以上函数必须借助 fopen 函数返回的句柄,若不想使用fopen函数,可以使用下面的函数
(1)file() 将文件内容一行一行地读入索引数组
(2)file_get_contents($filename, $use_include_path = false, $context = null, $offset = 0, $maxlen = null) 获取文件内容

(3)file_put_contents($filename, $data, $flags = 0, $context = null) 写入文件内容

##文件锁
flock(handle,operation)
第二个参数也是必须的,规定使用哪种锁类型。

  • LOCK_SH 读锁
  • LOCK_EX 写锁
  • LOCK_UN 释放锁定
  • LOCK_NB 附加锁定,如果不希望在加写锁是出现堵塞

描述难理解,看例子

flock($handle,LOCK_SH);
flock($handle,LOCK_EX+LOCK_NB);
flock($handle,LOCK_UN+LOCK_NB);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值