2012-03-26 77 views
0

好了,所以可以說你有一個文件名爲「search.txt」,而且文件的內容是:搜索文本文件中的行,並顯示Yes或No PHP

1223 
1245 
3389 
4489 
... 

,當你在index.php處搜索「1223」,它會返回TRUE,但如果搜索「12」(由於第一行和第二行包含「12」,它會返回2次),它會來返回FALSE,因爲它不完全匹配整行。

這是我迄今爲止,但它不工作:

$uid = $_POST['uid']; 
    $searchfile = file_get_contents('search.txt'); 

    if (preg_quote($searchfile, $uid) === false) 
    { 
     echo "NO"; 
    } 
    else 
    { 
     echo "YES"; 
    } 

謝謝你的任何迴應!

+2

什麼給你的想法'preg_quote'將搜索字符串? – deceze 2012-03-26 14:02:50

+0

http://stackoverflow.com/questions/6653045/preg-match-exact-number這是否有幫助?將文件傳遞給數組並搜索數組(基本上)。 – 2012-03-26 14:23:00

回答

2

不太清楚是否該號碼由線或用空格分開,但如果它是由換行符那麼下面的一個內膽應該工作:

if(array_search($uid, file('search.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)) === false) { 
    echo 'no'; 
} else { 
    echo 'yes'; 
} 
0

如果文件沒有得到太大,你可以循環通過與file()功能的每一行:

$lines = file('search.txt'); 
$uid = $_POST['uid']; 
$found = false; 

foreach ($lines as $line){ 
    if ($line == $uid) 
     $found = true; 
} 

if ($found) 
    echo 'YES'; 
else 
    echo 'NO'; 
相關問題