在文本文件中搜索行并显示是或否PHP

时间:2012-03-26 14:00:15

标签: php string search text

好吧,假设您有一个文件名“search.txt”,该文件的内容是:

1223
1245
3389
4489
...

当你在index.php并搜索“1223”时,它将返回TRUE,但是如果你搜索“12”(由于第一行和第二行包含,它会返回2次“12”),它会返回FALSE,因为它并不完全匹配整行。

这是我到目前为止所做的,但它不起作用:

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

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

感谢您的回复!

2 个答案:

答案 0 :(得分:2)

不完全确定数字是按行还是按空格分隔,但如果是换行符,那么下面的一行应该有效:

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

答案 1 :(得分: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';