- PHP 菜鸟教程
- PHP - 教程
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 功能
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - echo 语句和 print 语句
- PHP - var_dump() 函数
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP – 数据类型
- PHP - 类型转换
- PHP - 类型戏法
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件和I/O
- PHP – 数学函数
- PHP - Heredoc & Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期和时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符类型
- PHP - 算术运算符示例
- PHP - 比较运算符示例
- PHP - 逻辑运算符示例
- PHP - 赋值运算符示例
- PHP – 字符串运算符
- PHP – 数组运算符
- PHP – 条件运算符示例
- PHP - Spread 运算符
- PHP - Null 合并运算符
- PHP - Spaceship 运算符
- PHP 控制语句
- PHP – 决策
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP – 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - do...While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 数组
- PHP - 数组
- PHP - 索引数组
- PHP - 关联数组
- PHP - 多维数组
- PHP - 数组函数
- PHP - 常量数组
- PHP 函数
- PHP - 函数
- PHP - 函数参数
- PHP - 按值调用
- PHP - 按引用调用
- PHP - 默认参数
- PHP - 命名参数
- PHP - 变量参数
- PHP - 返回值
- PHP - 传递函数
- PHP - 递归函数
- PHP - 类型提示
- PHP - 变量范围
- PHP - 严格类型
- PHP - 匿名函数
- PHP - 箭头( Arrow )函数
- PHP - 变量处理函数
- PHP - 局部变量
- PHP - 全局变量
- PHP 超全局变量
- PHP - 超全局变量
- PHP - $GLOBALS 变量
- PHP - $_SERVER 变量
- PHP - $_REQUEST 变量
- PHP - $_POST 变量
- PHP - $_GET 变量
- PHP - $_FILES 变量
- PHP - $_ENV 变量
- PHP - $_COOKIE 变量
- PHP - $_SESSION 变量
- PHP 文件处理
- PHP - 文件处理
PHP - 文件处理
在 PHP 中,文件是一个资源对象,可以从中以线性方式读取或写入数据。术语 文件处理 是指 PHP 中的一组函数,这些函数允许使用 PHP 代码对磁盘文件进行读/写操作。
文件对象被分类为流。执行线性读/写操作的任何资源都是流。其他类似流的对象是 TCP 套接字、标准输入流,即用 “php://stdin” 表示的系统键盘、用 “php://stdout” 表示的标准输出流和错误流 “php://stderr”。
注意: 常数 STDIN、STDOUT 和 STDERR 代表相应的标准流。
尽管 PHP 被视为用于开发 Web 应用程序的服务器端脚本语言,但 PHP 也有一个命令行界面来执行控制台 IO 操作。
例
PHP 的 readline() 函数接受来自标准键盘的用户输入,echo/print 语句在控制台上呈现输出。
<?php
$str = readline("Type something:");
echo $str;
?>
它将产生以下输出 -
Type something: Are you enjoying this PHP tutorial?
Are you enjoying this PHP tutorial?
例
我们可以通过从 “php://stdin” 读取输入并将其输出到 “php://stdout” 来获得相同的效果。
<?php
$f = fopen("php://stdin", "r");
echo "Type something: ";
$str = fgets($f);
$f1 = fopen("php://stdout", "w");
fputs($f1, $str);
?>
在这里,fopen() 函数用于打开 stdin 流进行读取,打开 stdout 流进行写入。
例
PHP 支持各种流协议,用于与流相关的函数,例如 fopen()、file_exists() 等。使用 php_get_wrappers() 函数获取所有已注册包装器的列表。
<?php
print_r(stream_get_wrappers());
?>
它将产生以下输出 -
(
[0] => php
[1] => file
[2] => glob
[3] => data
[4] => http
[5] => ftp
[6] => zip
[7] => compress.zlib
[8] => compress.bzip2
[9] => https
[10] => ftps
[11] => phar
)
流被引用为 “scheme://target”。例如,文件流为 “file://xyz.txt”。
来自控制台的输入数据存储在计算机的主内存 (RAM) 中,直到应用程序运行。此后,RAM 中的内存内容将被擦除。
我们希望以这样一种方式存储它,以便在需要时可以在持久介质(例如磁盘文件)中检索它。因此,我们将使用磁盘文件来读取数据,并使用 destination 来存储数据,而不是标准流(用于输入的键盘和用于输出的显示设备)。
除了上面示例中使用的读取和写入模式(使用标准流的 IO 操作)之外,文件流还可以以各种其他模式打开,例如用于同时读/写的“r+”和“w+”,用于二进制模式的“b”等。
要打开磁盘文件进行读取并获取其引用指针,请使用 fopen() 函数。
$handle = fopen('file://' . __DIR__ . '/data.txt', 'r');
“file://” 方案是默认方案。因此,它很容易被删除,尤其是在处理本地文件时。
注意 − 始终建议关闭已打开的流。为此,请使用 fclose() 函数。
fclose($handle);
PHP 有几个内置函数,用于对文件流执行读/写操作。在后续章节中,我们将探讨文件系统功能。