ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP:在特定短语/单词之后搜索文本文件并输出

2019-12-08 09:33:22  阅读:356  来源: 互联网

标签:strpos readfile foreach arrays php


我正在尝试制作一个小的php脚本来自动化一些工作流程.
脚本要做的就是读取一个文件(每个文件大约10-20kb).
然后,我需要在文件中搜索一些特定的短语,然后输出-如果出现短语,则显示行号和短语.

例如,我有一个正在阅读和搜索的文本文件.我搜索短语“花是黄色”,“马是白色”和“混合”;

然后我的输出是:

第4行:“马是白色的”
第19行:“混合;”
第22行:“混合;”
第99行:“花是黄色的”
… 等等.

我正在使用此代码,该代码可以正确输出每行和行号,但是我无法创建仅输出搜索到的短语的搜索例程:

<?php
$lines = file('my-text-file.txt');

foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
?>  

我的方法是使用strpos,然后每次出现该短语时,它都会将其放入一个数组(或字典)中,其中行号为键,而该短语为值,但无法使其起作用,我认为可能会有更好,更有效的方法.

我们非常乐意向您提供任何帮助或建议.

谢谢
-梅斯蒂卡

解决方法:

function search ( $what = array (), $filePath ) {
    $lines = file ( $filePath );

    foreach ( $lines as $num => $line ) {
        foreach ( $what as $needle ) {
            $pos = strripos ( $line, $needle );
            if ( $pos !== false ) {
                echo "Line #<b>{$num}</b> : " . htmlspecialchars($line) . "<br />\n";
            }
        }
    }
}

#   Usage:
$what = array ( 'The horse is white', 'The flower is yellow', 'mixed' );
search ( $what );

标签:strpos,readfile,foreach,arrays,php
来源: https://codeday.me/bug/20191208/2090359.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有