好的,所以我试图在PHP中列出文本文件,我需要它们包含任意数量的一个变量$words_to_match ='spaghetti'
并回显链接。如您所见,文本文件中充满了字符串(或者每个字符串都是一个字符串)。
这是我的代码:
if($_POST["Confirmed"]=='')
{
echo "You need to enter something to search!";
}
else
{
$path_to_check = 'Confirmed/';
$words_to_match = $_POST["Confirmed"];//Checks the form from the last page
foreach(glob($path_to_check.'*.txt') as $filename)
{
foreach(file($filename) as $fli=>$fl) // Not sure what to put here.
{
if (stristr($fl,$words_to_match) !== false) //Or here.
{
echo '<a href="'.$filename.'">'.$filename.'</a><br />';
}
}
}
}
我不确定在foreach(file($filename) as $fli=>$fl)
或if (stristr($fl,$words_to_match) !== false)
的位置放置什么。我很确定第二个是对的。
当我搜索包含多行spaghetti
的文件时,它会显示几个相同的文件。如果有3行spaghetti
,则有3个文件 - 等等。我只想列出该文件中的一个,即使该文件中有一堆spaghetti
。我的理论是它逐行读取文件,并给出其中包含spaghetti
的所有行的输出。
总结一下,我想这样做,所以我有一个列出的文件,而不是有多少行包含一个列为文件的字符串。
有什么想法吗?
顺便说一句,我正在使用PHP 5.3的标准GoDaddy托管帐户。
答案 0 :(得分:0)
为什么不呢:
foreach(glob(...) as $filename) {
if( stripos(file_get_contents($filename),$words_to_check) !== false) {
// word is present.
}
}