【PHP】什么是流?
PHP流
流是一种将文件、网络、数据压缩等相关操作的一系列共同函数和使用方法进行泛化的方法。
因为我对这个问题不太了解,所以我在YYPHP上提出了疑问。
PHP的流和一般流有些不同。
PHP中有一个称为”流”的功能。
流算法与这个有些不同。
共同点
对于处理未确定数据量的操作通常被称为流(流处理)。
像小溪一样,逐渐处理大量的数据。
PHP的流
处理输入输出功能。
逐行读取CSV文件,并将其保存到数据库中的操作。
・数据流函数
例如:fread、stream_get_contents
以读取 XX 字节为单位的处理。
・非流式处理函数
例如:file_get_contents
用于获取全部数据
当读取包含几十兆字节的大文件时,可能会导致PHP内存不足而出现错误。
流媒体过滤器
过滤器是对从流中读取或向流中写入的数据进行某种操作的代码的最终阶段。在PHP脚本内部,您可以使用stream_filter_register()函数或使用与流创建相关的API,如示例中所述,在扩展模块内部创建自定义过滤器。如果要获取当前注册的过滤器列表,请使用stream_get_filters()函数。
似乎可以对通过流进行输入和输出的数据进行操作。
因为称之为”过滤器”,所以可以想象为对流动的数据进行过滤(类似咖啡过滤器)的操作。
可以利用的过滤器列表
使用PHP的流过滤器进行CSV读取
流动语境
上下文是一组可以改变或扩展流行为的参数和包装器特定选项。
可以传递一些改变流过滤器行为的设置之类的东西。
https://www.php.net/manual/zh/context.php
更改file_get_contents函数的第三个参数可以改变其内部行为。
※file_get_contents是PHP的函数,尽管它不是流处理的一部分,但在file_get_contents的内部(C语言层面)进行了流处理(可能)。
这是用来更改其行为设置的东西。
中国語において、以下の文をネイティブな表現に言い換えると:
说唱歌手
PHP中提供了许多内置的包装器。通过各种类似URL的协议,可以在文件系统函数如fopen()、copy()、file_exists()和filesize()中使用它们。除了这些包装器外,还可以使用stream_wrapper_register()函数来创建自定义包装器。
php://
在 “://” 前面的部分,可以自行创建
以下是将其注册为流包装器的类示例
请引用
YYPHP#87: 「如何充分利用PhpStorm」「公司自主开发与外包开发的区别是什么?」「个人作品集需要包含哪些内容?」
YYPHP #88「在哪里进行什么样的验证?」「工程师的职业转换是什么样的?」「更舒适的开发环境」「如何制作php-java?」