PHP小知识:file及array_filter的妙用

在PHP开发中,会遇到需要调用文本数据的情况,但是保存的文本,有时候会遇到因为数据量大,出现某行为空...

    在PHP开发中,会遇到需要调用文本数据的情况,但是保存的文本,有时候会遇到因为数据量大,出现某行为空的情况,因此,有些特殊函数可以处理这些内容。


    (以下为“官方”函数解释)


    定义和用法

    file() 函数把整个文件读入一个数组中。

    与 file_get_contents() 类似,不同的是 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。

    如果失败,则返回 false。

    语法

    file(path,include_path,context)
参数 描述
path 必需。规定要读取的文件。
include_path 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
context

可选。规定文件句柄的环境。

context 是一套可以修改流的行为的选项。若使用 null,则忽略。

    说明

    对 context 的支持是 PHP 5.0.0 添加的。

    返回的数组中每一行都包括了行结束符,因此如果不需要行结束符时还需要使用 rtrim() 函数。

    


定义和用法

array_filter() 函数用回调函数过滤数组中的值。

该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。

语法

array_filter(array,callbackfunction);
参数 描述
array 必需。规定要过滤的数组。
callbackfunction 必需。规定要使用的回调函数。

技术细节

返回值: 返回过滤的数组。
PHP 版本: 4.0.6+


看似不相干的两个函数,可以使得我们快速解决某些问题

微信截图_20210904140707.png

首先,读取某个文件,并且使得文件内容的成为一个数组,每一行都是一个元素。

$arr=file('demo.txt');

随后,直接格式化数组

$arr = array_filter($arr);

届时,得到的数组中,仅包含了含有字符串的元素

评论