我想知道是否有人可以帮助解决我似乎无法解决的小问题 - 我的头此刻正在转圈......
好的,我有一个包含大量信息行的 .txt 文件 - 我正在尝试将关键字与这些行匹配并显示一定数量的匹配行。
我将这段脚本放在一起,虽然它可以工作,但如果单词与搜索词的顺序相同,它只会匹配一行。
目前作为一个例子:
搜索词:
红色的帽子
.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;
}
?>
在此先感谢您的帮助-仍在学习:-)