2012-03-25 69 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"; 
}