Поиск строки в текстовом файле и отображение Да или Нет PHP - PullRequest
0 голосов
/ 26 марта 2012

Хорошо, допустим, у вас есть имя файла "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 ]

2 голосов
/ 26 марта 2012

Не совсем уверен, будут ли числа разделены линией или пробелом, но если это будет новая строка, тогда должен работать один следующий символ:

if(array_search($uid, file('search.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)) === false) {
   echo 'no';
} else {
   echo 'yes';
}
0 голосов
/ 26 марта 2012

Если файл не становится слишком большим, вы можете перебрать каждую строку с помощью функции 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';
...