PHPer 高手之路
  • Introduction
  • First Chapter
  • 基础
    • 数据类型和常量
    • 字符串
      • 字符编码
      • 字符编码相关编程
    • 引用变量
    • 运算符与错误控制符@
    • 流程控制与条件判断
      • foreach遍历中的引用
    • 函数
    • 文件及目录处理
  • PHP 数组
    • 基础
    • PHP数组操作
    • 输入流 php://input
    • PHP数组的内部实现
    • PHP数组和数据结构
    • 示例技巧
  • PHP文件编程
    • 文件系统
    • 基础
    • 实例技巧
    • PHP中XML处理
    • PHP中JSON处理
    • PHP中CSV处理
    • 大文件上传
  • 正则表达式
    • 基础
    • 正则的引擎
    • 表达式的优化
    • PHP中正则的使用
  • PHP 编码技巧
    • PHP编码习惯
    • PHP语法糖
    • PHP代码优化
    • PHP重点新特性
    • PHP编码规范
  • PHP选项和运行原理
    • PHP SAPI
    • PHP运行模式及安装方式
    • 附录:进程和线程的Q解
    • Apache下的MPM模式
    • Apache 与 Nginx
    • PHP的运行机制及原理
    • PHP垃圾回收机制
    • PHP配置选项
  • PHP安全
    • 跨站脚本攻击(XSS )
    • 跨站请求伪造(CRSF)
  • PHP 高级特性
    • 异常处理(Exceptions)
    • 代码复用(Trait)
    • 预定义接口(Predefined Interfaces)
    • 魔术方法(Magic Methods)
    • 回调函数、匿名函数&闭包
    • 命名空间(Namespaces)
    • 自动加载(Autoload)
    • 反射(Reflection)
    • 魔术常量(Magic constants)
    • 综合实例
  • 附录:关键词
  • 附录:资料
  • 代码的版本控制
    • SVN
    • Git
      • 疑难杂症
  • Linux
    • Linux原理与基础
    • 常见命令
    • Shell 编程
    • awk 与 sed
    • 命令笔记
  • HTTP 协议
    • 请求方法与返回状态码
    • Cookie、Session 的原理
  • MySQL
    • MySQL表存储引擎
  • 标准PHP库(SPL)
    • 数据结构
      • SplPriorityQueue - 优先队列
      • SplQueue - 队列
      • SplStack - 栈的功能
    • 接口
      • Countable - count统计接口
  • 附录:ElasticSearch
  • PHP数据结构
  • 附录:Rabbitmq
  • 附录:guzzle
  • JavaScript
    • 附录:资料
  • 疑难杂症
Powered by GitBook
On this page
  • 文件读取/写入操作
  • 目录操作函数:
  • 示例:

Was this helpful?

  1. 基础

文件及目录处理

文件读取/写入操作

打开函数:

  • fopen()

用来打开一个文件,打开时需要指定打开模式

打开模式r/r+、w/w+、a/a+、x/x+、b、t

写入函数:

  • fwrite()

  • fput()

读取函数

  • fread()

  • fgets()-获取一行

  • fgetc()-获取一个字符

关闭文件函数

  • fclose()

不需要fopen打开的函数

  • file_get_contents()

  • file_put_contents()

其他读取函数

  • file()

  • readfile()

访问远程文件

开启allow_url_fopen,HTTP协议连接只能使用只读,FTP协议可以使用只读或者只写

只要这样才能通过fopen()和file_get_contens()来进行远程读取

目录操作函数:

  • 名称相关:basename(),dirname(),pathinfo()

  • 目录读取:opendir()、readdir()、closedir()、rewinddir()

  • 目录删除:rmdir() - 目录为空才能进行删除

  • 目录创建:mkdir()

  • 文件大小:filesize()

  • 目录大小:disk_free_space() - 磁盘剩余空间、disk_total_space()

  • 文件类型:filetype()-常见文件或目录

  • 重命名文件或目录:rename()

  • 文件截取ftruncate()

  • 文件属性:file_exists()、is_readable()、is_writable()、is_executable()、filectime()、fileatime()、filemtime()

示例:

不断在文件hello.txt头部写入一行"hello world" 字符串,要求代码完整

<?php

// 打开文件
//
// 将文件的内容读取出来,在开头加入Hello World
//
// 将拼接好的字符串写回到文件当中
//
// Hello abcefg
//
$file = './hello.txt';

$handle = fopen($file, 'r');

$content = fread($handle, filesize($file));

$content = 'Hello World'. $content;

fclose($handle);

$handle = fopen($file, 'w');

fwrite($handle, $content);

fclose($handle);

循环遍历目录

<?php

$dir = './test';

// 打开目录
// 读取目录当中的文件
// 如果文件类型是目录,继续打开目录
// 读取子目录的文件
// 如果文件类型是文件,输出文件名称
// 关闭目录
//

function loopDir($dir)
{
    $handle = opendir($dir);

    while(false!==($file = readdir($handle)))
    {
        if ($file != '.' && $file != '..')
        {
            echo $file. "\n";
            if (filetype($dir. '/'. $file) == 'dir')
            {
                loopDir($dir. '/'. $file);
            }
        }
    }
}

loopDir($dir);
Previous函数NextPHP 数组

Last updated 5 years ago

Was this helpful?