使用 strpos 进行多个搜索词匹配

2023-11-30

我想知道是否有人可以帮助解决我似乎无法解决的小问题 - 我的 此刻头在转圈……

好的,我有一个包含大量信息行的 .txt 文件 - 我正在尝试匹配关键字 与这些行并显示一定数量的匹配行。

我将这段脚本放在一起,虽然它有效,但它只匹配一行,如果 单词的顺序与搜索词的顺序相同。

目前举个例子:

搜索词:

red hat

.txt 文件中的行:

这是我的红帽子
我的帽子是红色的
这顶帽子是绿色的
这是一条红领巾
你的红帽子不错

目前的脚本将匹配并显示第 1、5 行

不过我希望它匹配并显示第 1、2、5 行

任何顺序但所有单词都必须存在才能匹配。

我浏览了这里和其他地方的大量帖子,我明白 需要的是分解字符串,然后在循环中搜索每个单词,但是 尽管尝试了几种不同的方法,但我无法让它发挥作用,因为它只是返回 同一条线多次。

在我失去剩下的头发之前,任何帮助将不胜感激:-)

这是我目前正在工作的代码 - 搜索变量已经是 放:

<?php
rawurldecode($search);
$search = preg_replace('/[^a-z0-9\s]|\n|\r/',' ',$search);
$search = strtolower($search);
$search = trim($search);

$lines = file('mytextfile.txt') or die("Can't open file");
shuffle($lines);

$counter = 0;

// Store true when the text is found
$found = false;

foreach($lines as $line)
 {

  if(strpos($line, $search) !== false AND $counter <= 4)
  {
    $found = true;
    $line = '<img src=""> <a href="">'.$line.'</a><br>';


    echo $line;
    $counter = $counter + 1;

  }

}

// If the text was not found, show a message
if(!$found)
{
  echo  $noresultsmessage;
}

?>

预先感谢您的任何帮助 - 仍在学习:-)


这是我的代码:

$searchTerms = explode(' ', $search);
$searchCount = count($searchTerms);
foreach($lines as $line)
 {
    if ($counter <= 4) {
        $matchCount = 0;
        foreach ($searchTerms as $searchWord) {
            if (strpos($line, $searchWord) !== false ) {
                $matchCount +=1;
            } else {
                //break out of foreach as no need to check the rest of the words if one wasn't found
                continue; 
            }
        }
        if ($matchCount == $searchCount) {
            $found = true;
            $line = '<img src=""> <a href="">'.$line.'</a><br>';
            echo $line;
            $counter = $counter + 1;
        }

    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 strpos 进行多个搜索词匹配 的相关文章

  • 在 PHP 中接受带有小数点和千位分隔符的国际数字

    对于用户可以输入能量值来计算相应费用的在线计算器 我需要 PHP 脚本来接受各种用户输入 200 万又四分之一焦耳 的值可以输入为 2000000 25 默认表示法 2 000 000 25 带千位分隔符 2000000 25 逗号作为小数
  • 通过身份验证保护 CodeIgniter 2 应用程序的正确方法是什么?

    I have Ion Auth http benedmunds com ion auth 正确安装并在我的服务器上运行 我也有默认的代码点火器2 新闻 教程在同一个 CI 安装中工作 我只是在玩 并对使用身份验证系统 封闭 或保护整个应用程
  • 所有 PHP 相等比较都是对称的吗?

    Is a b总是等价于 b a 我认为在 JavaScript 中 由于强制转换 有一些奇怪的情况并非如此 I think ide https stackoverflow com questions 4752579 are all php
  • 更改 Woocommerce 中“我的帐户”页面上的标题

    我见过大量有关如何使用 WooCommerce 我的帐户仪表板重新排序 更改导航和页面的示例 但我一生都无法弄清楚如何更改每个部分的主要标题 我的帐户 订单 下载 地址等 我已经搜索过模板 但没有任何乐趣 我尝试使用条件 php 注释来回显
  • 如何检测字符串中的非 ASCII 字符?

    如果我有一个 PHP 字符串 如何以有效的方式确定它是否至少包含一个非 ASCII 字符 我所说的非 ASCII 字符是指不属于该表的任何字符 http www asciitable com http www asciitable com
  • 在 PHP 中比较两个对象的最快方法是什么?

    假设我有一个对象 在本例中为 User 对象 并且我希望能够使用单独的类来跟踪更改 用户对象不必以任何方式改变它的行为才能发生这种情况 因此 我的单独的类创建它的 干净 副本 将其存储在本地某个位置 然后可以将 User 对象与原始版本进行
  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • 如何将我的 init 函数中的代码集中到所有控制器中?

    public function init this gt view gt user Zend Auth getInstance gt getIdentity this gt view gt siteName Zend Registry ge
  • 访问sendBeacon发送的数据

    文档表明sendBeacon通过发送其数据HTTP POST request 但在 PHP 中 POST变量似乎是一个空数组 这是我的 JavaScript 代码 navigator sendBeacon beacon log php My
  • 如何在多次尝试后延迟登录尝试 (PHP)

    我正在开发一个用 PHP 构建的相当大的网站 该网站可能会有很多用户 我正在寻找一种方法来保护登录屏幕免受自动尝试的影响 我已经在注册表中添加了验证码检查 但还想进一步强化网站 据我所知 StackOverflow 上也有类似的问题 而且我
  • WordPress 包含 SVG 文件错误

    我使用 PHP 和 WordPress 在本地主机上 我可以毫无问题地包含 SVG 文件 但在实时服务器上 我尝试包含一个 SVG 文件以便能够使用 CSS 对其进行样式设置 我收到此错误消息 Parse error syntax erro
  • 如何纠正这个非法字符串偏移?

    我收到此错误 警告 第 32 行 home mysite public html wp content themes evento lib php extra class php 中的非法字符串偏移 type 我意识到文件中的这部分代码是错
  • Facebook 应用程序无法获取会话

    我正在 Heroku 上为 Facebook 开发一个非常基本的 PHP 应用程序 它显示非常基本的用户信息 如姓名 个人资料图片 但该应用程序在 getToken 方法中停止 我在登录我的个人资料后尝试了该应用程序 但仍然出现相同的消息
  • PHP 扩展开发入门 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 请推荐有关 PHP 低 级 modules 编程接口的帮助文章或教程 搜索我的书签 我发现的唯一链接是
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • Codeigniter - 出现 404 Not Found 错误

    我们在 godaddy 有两个托管套餐 我们的实时网站使用以下 htaccess 文件运行良好 无需在 url 中使用 index php 即可访问网站 RewriteEngine On RewriteCond REQUEST FILENA
  • 如何在 phalcon 框架中同时连接多个数据库在模型类中同时使用两个而不仅仅是一个

    在我的代码中我有两个数据库ABC and XYZ 我想在同一模型中使用两个数据库 而不是 phalcon 中的解决方案是什么 如何为此实现多个数据库连接 one
  • 如何将 Smarty 3 包含到 Laravel 4 中?

    我是 Laravel 的新手 所以仍在习惯这些概念 但是我有大约 10 年的使用 Smarty 的经验 所以我希望利用这一点 除了事实上 Blade 似乎缺乏太多我发现有用且在 Smarty 中开箱即用的功能 但无论如何除了这个问题的要点之
  • 我可以在 PHP 会话变量中安全地存储用户名和密码吗?

    我想在 REST api 之上制作一个轻量级的 web 应用程序 用户只需进行一次身份验证 从那时起 所有针对 web api 的请求都希望通过以某种方式保持用户名和密码有效来完成 我已经做了一个工作原型我在哪里将用户名和密码存储在会话变量
  • 如何使用 php 将 *.xlsb 转换为数组或 *.csv

    我正在尝试转换 xlsb文件到php array or csv文件 或至少 xls 我尝试使用PHPExcel 但看起来它无法识别该文件中的内容 我注意到 你可以重命名 xlsb文件到 zip文件 然后使用命令行解压缩unzip zip 之

随机推荐

  • 如何用java编写可执行程序? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将 Java 程序转换为 exe 文件 如何用java编写可执行程序 您实际上并不需要这样做 还有许多其他选项可用 正如 Philip 建议的那样 您可以使用可执行的 jar 文件 看http w
  • Go sql - 准备好的语句范围

    我正在使用 Go 1 6 x sql 包以及 PostGres 9 4 构建一个 API 我准备的陈述是否应该具有应用或请求范围 阅读完这些文档后 将它们限制在应用程序级别以减少准备阶段的数量似乎会更有效 然而 也许还有其他考虑因素 准备好
  • C 中的最小值和最大值使用基础知识

    该程序应该在用户输入 0 时结束 然后显示计数 总和 平均值 最小值和最大值 我能够算出总和和平均值 但我的最小值和最大值不起作用 int main int number 0 int count 0 int sum 0 int averag
  • 添加自定义 DataGridViewColumn,每个单元格带有标签和按钮

    我想添加一个自定义DataGridViewColumn to my DataGridView 此列应在每行创建以下单元格 起初我创建了一个自定义UserControl创建一个带有按钮的标签 private class AllocationC
  • 从 JAR 中保存首选项

    我目前正在编写一个游戏 并且已经到了我需要用户能够保存诸如 JFrame 大小 键绑定等首选项的地步 用户将通过从我的网站下载的 jar 来运行游戏 我决定使用 java util prefs Preferences 下的 Preferen
  • 如何不断添加到JS变量?

    每次用户在框中输入值时 我都会尝试连续添加到 js 变量 到目前为止 如果他们输入 21 警报会说 您的余额是 12 英镑 但如果我输入 15 我希望它说您的余额是 27 但它会说 15 或者只是最新的数量 代码如下
  • 这个二进制文件传输有什么问题(损坏 docx 文件)?

    我已经尝试解决这个问题一个多星期了 可以really在一些帮助下做 我们使用 httprequest 将文件发布到 api 大多数文件都正常 但 docx 文件最终会损坏 经过大量研究后 我非常确定我在二进制帖子中做错了一些事情 即向文件添
  • 从电子表格中选择并复制一些值,与另一张工作表上的另一列进行比较

    我已阅读这两个链接Google 脚本 有条件地将行从一个电子表格复制到另一个电子表格 and https stackoverflow com a 4809413 1526044经过尝试后我无法做我需要的事情 我有一个电子表格 其中一张纸上有
  • 使用 eclipselink.media-type 值设置 Marshaller 属性时出现 PropertyException:application/json

    我正在尝试遵循位于的示例here但得到一个javax xml bind PropertyException 由于以下代码行 我收到此异常 marshaller setProperty eclipselink media type appli
  • iphone:Settings.bundle 返回空值

    我使用的是 xCode 3 2 然后转移到 xCode 4 2 并从 Settings bundle 获取一些值 它工作正常 同时 虽然我需要编辑 Settings bundle 中的一些值 但 Root plist 文件没有显示 所以我按
  • Django_filters 小部件自定义

    如何在 Django filters 中自定义小部件 我尝试这样做 但它在选择字段中的价值消失了添加小部件时的图像 当我删除小部件时 会显示该值删除小部件时的图像 抱歉我的英语不好 谢谢之前 class CustomerOrderFilte
  • 当 SwiftUI 已经导入合并时,为什么我还需要导入它?

    我正在尝试听 State变化并遵循这个答案 这是我的代码 import SwiftUI struct ContentView View State var isOn false var body some View Toggle Selec
  • C#/.NET/LINQ 的 Enumerable.All 方法的 Swift 等效项是什么?

    我想要一个将给定函数应用于序列并返回 true 的函数 当且仅当给定函数对序列的每个元素返回 true 时 例如可枚举 全部来自 C NET LINQ 世界 建立在乔恩的回答 您可以使用contains 而不是 显式 循环 extensio
  • read_html 编码错误

    我正在尝试网络抓取page 我想到使用 rvest 包 然而 我陷入了第一步 即使用read html来读取内容 这是我的代码 library rvest url lt http simec mec gov br painelObras r
  • 在 x86/x86_64 处理器上使用 LFENCE 指令是否有意义?

    我经常在互联网上发现LFENCE在 x86 处理器中没有任何意义 即它什么都不做 所以改为MFENCE我们可以绝对无痛地使用SFENCE 因为MFENCE SFENCE LFENCE SFENCE NOP SFENCE But if LFE
  • 在 R 中的多个分隔符处拆分字符串表达式

    我正在尝试解析 R 中的一些数学表达式 因此我想将它们分割为多个分隔符 等等 以便我获得表达式中包含的符号变量的列表 所以例如我想 2 x1 x2 3 x3 回来 x1 x2 x3 有没有好的方法呢 谢谢 您可以使用 R 解析器来查找表达式
  • 使用位置时防止元素显示在页脚顶部:固定

    我想使用CSS属性position fixed来固定元素的位置 但同时防止当用户滚动到页面底部时该元素位于我的页脚上方 有没有办法阻止元素以这种方式显示在页脚上 如果您希望有时固定元素而不是其他元素 则需要使用 JavaScript 来添加
  • 用于创建文件和日期的 csv 列表的 Windows 批处理文件

    我需要创建一个 Windows 批处理文件 该文件生成一个 csv 文件 其中包含目录中所有文件的三个字段 减去批处理文件本身 Fields 文件名 可以包含逗号 创建日期 修改日期 请注意 批处理文件将从目录运行 并且应该知道为当前目录中
  • Sql Server:索引列上的下部函数

    我发现一个大问题 我已将 Lower 函数添加到其中一个表的索引列中以获取数据 该表包含超过 100K 条记录 获取记录时 CPU 使用率达到 100 我无法理解 仅仅因为 Lower 函数 怎么会发生如此巨大的变化 请帮忙 如果您确实经常
  • 使用 strpos 进行多个搜索词匹配

    我想知道是否有人可以帮助解决我似乎无法解决的小问题 我的 此刻头在转圈 好的 我有一个包含大量信息行的 txt 文件 我正在尝试匹配关键字 与这些行并显示一定数量的匹配行 我将这段脚本放在一起 虽然它有效 但它只匹配一行 如果 单词的顺序与