首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP从文本文件中搜索关键字,打印包含该关键字的整行,然后计算打印的行数

PHP是一种广泛应用于Web开发的脚本语言,它具有简单易学、开发效率高等特点。在文本文件中搜索关键字并打印包含该关键字的整行,然后计算打印的行数,可以通过以下步骤实现:

  1. 打开文本文件:使用PHP的fopen()函数打开目标文本文件,可以指定打开文件的模式为只读模式("r")。
  2. 逐行读取文件内容:使用fgets()函数在循环中逐行读取文件内容,直到文件末尾。每次读取一行内容存储到变量中。
  3. 搜索关键字:使用PHP的strpos()函数在每一行中搜索关键字。如果关键字存在于当前行中,返回关键字在当前行中的位置。
  4. 打印包含关键字的整行:如果关键字存在于当前行中,使用echo语句打印整行内容。
  5. 计算打印的行数:使用一个计数器变量,在打印包含关键字的整行时递增计数器的值。

以下是一个示例代码:

代码语言:txt
复制
<?php
$filename = "example.txt"; // 替换为目标文本文件的路径

$keyword = "关键字"; // 替换为要搜索的关键字

$lineCount = 0; // 初始化行数计数器

$file = fopen($filename, "r"); // 打开文本文件

if ($file) {
    while (($line = fgets($file)) !== false) {
        if (strpos($line, $keyword) !== false) {
            echo $line; // 打印包含关键字的整行
            $lineCount++; // 行数计数器递增
        }
    }

    fclose($file); // 关闭文件

    echo "包含关键字的行数:" . $lineCount;
} else {
    echo "无法打开文件!";
}
?>

这段代码会打开指定的文本文件,逐行搜索关键字并打印包含关键字的整行,最后输出包含关键字的行数。

对于PHP开发中的文件操作,腾讯云提供了对象存储服务 COS(Cloud Object Storage),可以用于存储和管理文件。您可以通过腾讯云COS产品了解更多信息:腾讯云对象存储 COS

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux指令入门-文本处理

vim在文本文件写入一首唐诗。...在命令模式执行底线命令:wq离开vim。 文本文件查看命令 cat 命令描述:cat命令用于查看内容较少文本文件。 命令格式:cat [选项] [文件]。...grep全称是Global Regular Expression Print,表示全局正则表达式版本,它能使用正则表达式搜索文本,并把匹配打印出来。...注意: sed命令不会修改原文件,例如删除命令只表示某些行不打印输出,而不是原文件删去。 如果要改变源文件,需要使用-i选项。 命令格式:sed [参数] [动作] [文件]。...默认情况下,awk会输入读取一行文本,然后针对该行数据执行程序脚本,但有时可能需要在处理数据前运行一些脚本命令,这就需要使用BEGIN关键字,BEGIN会在awsk读取数据前强制执行关键字后指定脚本命令

3.5K20

Linux 基础下

head //从头部开始输出文件内容,默认打印10行 -n //指定要输出行数,-n 如head -5 txt tail //查看文本文件尾部内容.../' //匹配关键字行,支持正则表达式 '/关键字1/,/关键字2/' //匹配关键字1到关键字2间所有的行 'NR==1' //匹配第1行.../或多个:/为分隔符分割/etc/passwd文件内容,打印出第1列和第6列 文本过滤和流编辑器sed sed //基于行过滤和转换文本流编辑器 语法:sed...//搜索包含关键字行,可使用基本正则表达式 sed -n '/第一个关键字/,/第二个关键字/p' file //搜索第一个关键字到第二个关键字中间所有的行...//删除第一个关键字到第二个关键字中间所有的行 文本过滤grep grep //搜索文本内容,并将匹配内容所在一整行都显示出来 //支持使用正则表达式来过滤文本

2.9K20

【Linux】【实战系列】10 分钟掌握日常开发 Linux 文本与文件处理命令

+/pattern 在每个文档显示前搜寻字串(pattern),然后字串之后开始显示+num 第 num 行开始显示fileNames 欲显示内容文档,可为复数个数// 比如我们读取文件 log.txt...-r:递归查找子目录文件-l:只打印匹配文件名-c:只打印匹配行数// 日常我们使用经常参数有 -i 和 -c , 如实现匹配 log.txt 包含 test 字符串(忽略大小写)行,并展示匹配行上下两行...// 当我们需要匹配多个关键字时是一个很有用功能,比如我们可以这样使用:// 匹配包含 test 或 hello 关键字行 grep -c 2 -e 'test|hello' log.txt// 匹配同时包含...test 和 hello 关键字 grep -c 2 -e 'test&hello' log.txt组合融合技我们日常工作中会有这样一个场景,读取正在打印日志文件同时匹配包含对应字符串行,我们可以这样实现...Ctrl + U 可以进行整行删除文件搜索findLinux find 命令用于在指定目录下查找文件和目录,它可以使用不同选项来过滤和限制查找结果。

19220

awk工具详解

它是专门为文本处理设计编程语言,也是行处理软件,通常用于扫描、过滤、统计汇总工作数据可以来自标准输入也可以是管道或文件 工作原理(1): 当读到第一行时,匹配条件,然后执行指定动作,再接着读取第二行数据处理...sed命令常用于一整行处理,而awk比较倾向于将一行分成多个””字段”然后再进行处理。awk信息读入也是逐行读取,执行结果可以通过print功能将字段数据打印显示。...格式: awk关键字选项命令部分'{xxxx}’文件名 awk包含几个特殊内建变量(可直接用)如下所示: FS:指定每行文本字段分隔符,默认为空格或制表位(就是tab)。...{print NR}’ zz ##打印行数 awk ‘END{print $0}’ zz ##打印最后一整行内容 生产案例: 逐行执行开始之前执行什么任务,结束之后再执行什么任务...第1个字段包含root且有7个字段第1/2个字段 awk -F “:” ‘($7!

3K20

Linux之sed命令详解

需要注意是,这种-e方法并没有在文件内部真正添加这一行数据,只是在终端显示上面添加了。...将文件第3行到最后一行打印出来: nl testfile.txt | sed -n '3,$p'或者sed '3,$p' testfile.txt ?...4.数据搜寻处理 搜索 testfile.txt包含关键字‘4’行 nl testfile.txt | sed -n '/4/p'或者sed -n '/4/p' testfile.txt ?...数据搜寻并执行命令,搜索testfile.txt,找到关键字‘4’对应行,执行后面花括号一组命令,每个命令之间用分号分隔,这里把4替换为four,再输出这行: ?...数据搜寻并替换 除了整行处理模式之外, sed 还可以用行为单位进行部分数据搜寻并取代。基本上 sed 搜寻与替代与 vi 相当类似!

3.1K10

Linux 基础命令(收藏大全)

s 将多个空行合并成一个空行输出 ------------- 命令: more 查看文本文件命令 命令格式: more [选项] 文件名 +行数直接给定行数开始显示 -s 将多个空行压缩成一个空行...查找文件/目录字节为0文件(即空文件) find / -empty ----------- 命令: grep 功能: 通过正则表达式查找文件关键字 参数: -i:忽略大小写 -c:打印匹配行数...-C:打印出匹配上下文(上N行,下N行)多少行 -l:列出匹配文件名 -L:列出不匹配文件名 -n:打印包含匹配项行和行标 -w:仅匹配指定单词而非关键字 -e:索引匹配字串 -r:递归查询...打印匹配”test”关键字有多少行 grep -c “test” grepcmd.txt 3. 打印匹配”test”关键字上下文各1行 grep -C 1“test” grepcmd.txt 4....显示install.log第四行 $awk 'NR==4' install.log 5.打印install.log文件包含data字段行第二区域 $awk ‘/data/ {print $2}’

2.1K30

Linux 基础命令(收藏大全)

-s 将多个空行合并成一个空行输出 ------------- 命令: more 查看文本文件命令 命令格式: more [选项] 文件名 +行数直接给定行数开始显示 -s 将多个空行压缩成一个空行...查找文件/目录字节为0文件(即空文件) find / -empty ----------- 命令: grep 功能: 通过正则表达式查找文件关键字 参数: -i:忽略大小写 -c:打印匹配行数...-C:打印出匹配上下文(上N行,下N行)多少行 -l:列出匹配文件名 -L:列出不匹配文件名 -n:打印包含匹配项行和行标 -w:仅匹配指定单词而非关键字 -e:索引匹配字串 -r:递归查询...打印匹配”test”关键字有多少行 grep -c “test” grepcmd.txt 3. 打印匹配”test”关键字上下文各1行 grep -C 1“test” grepcmd.txt 4....显示install.log第四行 $awk 'NR==4' install.log 5.打印install.log文件包含data字段行第二区域 $awk ‘/data/ {print $2}’

1.9K40

Linux 基础命令(收藏大全)

s 将多个空行合并成一个空行输出 ------------- 命令: more 查看文本文件命令 命令格式: more [选项] 文件名 +行数直接给定行数开始显示 -s 将多个空行压缩成一个空行...查找文件/目录字节为0文件(即空文件) find / -empty ----------- 命令: grep 功能: 通过正则表达式查找文件关键字 参数: -i:忽略大小写 -c:打印匹配行数...-C:打印出匹配上下文(上N行,下N行)多少行 -l:列出匹配文件名 -L:列出不匹配文件名 -n:打印包含匹配项行和行标 -w:仅匹配指定单词而非关键字 -e:索引匹配字串 -r:递归查询...打印匹配”test”关键字有多少行 grep -c “test” grepcmd.txt 3. 打印匹配”test”关键字上下文各1行 grep -C 1“test” grepcmd.txt 4....显示install.log第四行 $awk 'NR==4' install.log 5.打印install.log文件包含data字段行第二区域 $awk ‘/data/ {print $2}’

1.2K30

使用grep精确匹配一个单词

使用grep搜索某个关键字时,默认搜索出来是所有包含关键字行,如下: 搜索/var/named/veredholdings.cn_zone文件172.16.50.24所在行,默认会把所有包括172.16.50.24...-c       计算符合范本样式列数。 -C      或-  除了显示符合范本样式那一列之外,并显示列之前后内容。...[root@test ~]# echo this is a test line. | egrep -o "[a-z]+\." line. 7)统计文件或者文本包含匹配字符串行数 -c 选项: [root...: [root@test ~]# echo gun is not unix | grep -b -o "not" 7:not #一行字符串字符便宜是该行第一个字符开始计算,起始值为0。...: 16)只在目录中所有的.php和.html文件递归搜索字符"main()" [root@test ~]# grep "main()" .

12.3K50

如何编写一个shell脚本

常用命令语法及功能  echo "some text": 将文字内容打印在屏幕上  ls: 文件列表  wc –l filewc -w filewc -c file: 计算文件行数计算文件单词数计算文件字符数...可以标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。命令采用正则表达式(见参考)进行搜索。不要和shell通配符相混淆。...管道 (|) 将一个命令输出作为另外一个命令输入。  grep "hello" file.txt | wc -l  在file.txt搜索包含有”hello”行并计算行数。  ...变量包含了传递给程序第一个参数值。...下一步,我们使用shift命令将第一个和第二个参数参数列表删除,这样原来第三个参数就成为参数列表$*第一个参数。然后我们开始循环,命令行参数列表被一个接一个地被赋值给变量$file。

1.7K40

egrep命令

egrep命令 egrep命令用于模式搜索,属于grep函数族,工作原理和grep-E一样,其将模式视为扩展正则表达式,并打印出与模式匹配行,如果有多个文件具有匹配模式,其还能显示每行文件名。...-C NUM, --context=NUM: 打印输出上下文NUM行,在相邻匹配组之间放置包含--行。 -b, --byte-offset: 打印输入文件每行输出之前字节偏移量。...-c, --count: 禁止正常输出,而是为每个输入文件打印匹配行计数,使用-v,--invert match选项,计算不匹配行数。...默认情况下,在MS-DOS和MS Windows下,grep通过查看文件读取第一个32KB内容来猜测文件类型。...如果grep确定文件是文本文件,它将从原始文件内容删除CR字符(以使带有^和$正则表达式正常工作)。

1.4K10

Linux命令篇(二):文档编辑部分

-v:反向查找,只打印不匹配行。 -n:显示匹配行行号。 -r:递归查找子目录文件。 -l:只打印匹配文件名。 -c:只打印匹配行数。...举例说明 在文件 testfile.txt 查找字符串 “linux”,并打印匹配行 grep linux testfile.txt 在标准输入查找字符串 “linux”,并只打印匹配行数 echo...| grep -c linux 在当前目录,查找后缀有info字样文件包含 linux字符串文件,并打印字符串行 grep linux *info 以递归方式在/home/sk/test...,基本语法格式如下: rgerp [参数选项] [文件] 举例说明 在当前目录下查找句子包含"linux"字符串文件 rgrep linux * 3、sed 命令 sed命令主要是利用脚本来处理文本文件...因为shell可能会误解显示星号意义) 40 6、wc 命令 wc命令是一个用于计算数字命令,可以用来计算文件个数行数等 常用参数说明 -c:只显示Bytes数。 -l:显示行数

9910

linux运维命令梳理(三)

一般而言,awk数组用来记录收集信息,可以用于计算总和、统计单词以及跟踪模板被匹配次数等等。...文件查找匹配模式行 1.作用 Linux系统grep命令是一种强大文本搜索工具,它能使用正则表达式搜索文本,并把匹 配打印出来。...grep -v 过滤 grep -c 打印关键字符所在行数 grep -An 打印关键字符所在后n行内容 grep -Bn 打印关键字符所在前n行内容 grep -Cn 打印关键字符所在前后各...其中文件’sysrp.txt’包含字符串,讨论是 SysRQ 功能。 默认情况下,’grep’只搜索当前目录。...Grep 命令 用法大全 1、 参数: -I :忽略大小写 -c :打印匹配行数 -l :多个文件查找包含匹配项 -v :查找不包含匹配项行 -n:打印包含匹配项行和行标 2、

7.9K81

软件测试|Linux三剑客之awk命令详解

打印符合条件行:awk '/pattern/ { print }' input_file命令将打印 input_file 文件包含 "pattern" 所有行。...示例用法计算文件数字总和:awk '{ sum +=$1 } END { print sum}' number.txt ####30上述命令将计算 numbers.txt文件第一列所有数字总和,...awk文件读取脚本awk 允许将脚本命令存储到文件然后再在命令行引用,比如:cat awk.sh{print $1 "'s home directory is " $6}$ awk -F: -f...注意,在程序文件,也可以指定多条命令,只要一条命令放一行即可,之间不需要用分号。awk BEGIN关键字awk 还可以指定脚本命令运行时机。...默认情况下,awk 会输入读取一行文本,然后针对该行数据执行程序脚本,但有时可能需要在处理数据前运行一些脚本命令,这就需要使用 BEGIN 关键字

30010

shell脚本扩展「建议收藏」

模式描述在查找文字主体时待匹配一个或多个字符串。 正则表达式作为一个模板,将某个字符模式与所搜索字符串进行匹配。...\{n,m\}还有其他几种形式: \{n\} 连续n个前导字符 \{n,\} 连续至少n个前导字符 9、\ 用于转义紧跟其后单个特殊字符,使特殊字符成为普通字符 \.* \.php$ 如...^[A-Z]..$ 搜索行以A至Z一个字母开头,然后跟两个任意字母,然后跟一个换行符行。将找到第5行。...out the line,全面搜索正则表达式并把行打印出来)是一种强大文本搜索工具,它能使用正则表达式搜索文本,并把匹配打印出来....,填充域,0则表示所有域,1表示第一个域, 思考题:如何打印所有记录(以/etc/passwd内容为例) 例4:搜索/etc/passwd有root关键字所有行 这种是pattern(模式)使用示例

5.7K20

文本处理三剑客之grep

作用:文本搜索工具,根据用户指定“模式”对目标文本逐行进行匹配检查,它能使用正则表达式搜索文本,并把匹配打印出来。...模式:由正则表达式字符及文本字符所编写过滤条件 grep常用选项     grep 关键字 文件     --color=auto  关键字高亮显示 *-v 关键字 显示不包含关键字行,取反... *-i 关键字 忽略关键字大小写     -n 显示结果每行前增加行号     -c 仅显示找出结果行数  *-o 仅显示匹配到关键字,不显示同行其他内容      -e...(比[:blank:]包含范围广)            [:cntrl:] 不可打印控制字符(退格、删除、警铃...)            ...• 分组括号模式匹配到内容会被正则表达式引擎记录于内部变量,这些变量命名方式为 : \1, \2, \3, ... ?

59510

软件测试|Linux三剑客之awk命令详解

打印符合条件行: awk '/pattern/ { print }' input_file 命令将打印 input_file 文件包含 “pattern” 所有行。...示例用法 计算文件数字总和: awk '{ sum +=$1 } END { print sum}' number.txt #### 30 上述命令将计算 numbers.txt 文件第一列所有数字总和...awk文件读取脚本 awk 允许将脚本命令存储到文件然后再在命令行引用,比如: cat awk.sh {print $1 "'s home directory is " $6} $ awk -F...注意,在程序文件,也可以指定多条命令,只要一条命令放一行即可,之间不需要用分号。 awk BEGIN关键字 awk 还可以指定脚本命令运行时机。...默认情况下,awk 会输入读取一行文本,然后针对该行数据执行程序脚本,但有时可能需要在处理数据前运行一些脚本命令,这就需要使用 BEGIN 关键字

28740
领券