2012-03-25 46 views
-1

我认为我在半路上很好地完成了一半的工作。无论如何,下面的代码可以在第一行找到它,但我有一个脚本可以在每行上创建它们。 请修改或创建以下内容的全新版本,以便在每行上搜索表单数据。PHP:搜索文件中的文本时出现问题

$search = $_POST['search']; 
$file = file("SLIST.txt"); 
foreach($file as $line) 
{ 
    $line = trim($line); 
    if($line == $search) 
    { 
     echo $search . " WAS found in the database"; 
    } 
    else 
    { 
     echo $search . " was NOT found in the database"; 
    } 
} 

通过形式我的意思是有一个搜索表单上一页。这个页面告诉你放入搜索表单的文本是否与文件中的一行匹配(例如:第1行:引导第2行:树搜索条目:Tree Echo msg:树WAS在数据库中找到)

它目前不像我打算的那样工作。

+1

你的代码似乎是正确的,请确保,那的'$ search'和内容'$ file'是正确 – 2012-03-25 00:37:07

回答

1

如果你只是想知道,如果搜索字符串的文件,并且不与file_get_contents()关心上线,然后strpos()doc)可能是你这样的:

$file = file_get_contents('SLIST.txt'); 
$search = $_POST['search']; 

if (strpos($file,$search)){ 
    echo $search . " WAS found in the database"; 
} 
else 
{ 
    echo $search . " was NOT found in the database"; 
} 

如果您想知道该生产线,如果您使用我的strpos()更改if($line == $search),您的解决方案也应该可以正常工作。

如果该行必须是正是你正在寻找搜索查询,那么你的解决方案应该只是罚款

+0

这似乎工作。在TXT中增加了3行,它除了第一行之外每行都有。够好了。谢谢! – rockintyler8 2012-03-25 00:48:09

1

这不是很清楚。我想以下是你想要的。

<?php 
$search = $_POST['search']; 
$file = file("SLIST.txt"); 
$found = false; 
foreach($file as $line) { 
    $line = trim($line); 
    if($line == $search) { 
    $found = true; 
    break; 
    } 
} 

if ($found) 
{ 
    echo $search . " WAS found in the database"; 
} 
else { 
    echo $search . " was NOT found in the database"; 
} 
?> 
0

你希望找到在整个文件一个字符串。我知道你想看每一行,但这是更有效率。 试试这个

$file = file_get_contents("SLIST.txt"); 
if(strpos($file, $search)) 
{ 
echo $search . " WAS found in the database"; 
} 
else { 
    echo $search . " was NOT found in the database"; 
} 

如果你只是想读线然后做

if(strpos($line, $search)) 
{ 
echo "found"; 

} 
else 
{ 
echo "not found"; 
}