2012-03-26 76 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'; 
相关问题