#php #arrays
#php #массивы
Вопрос:
вот мой код
$cont = file_get_contents("users.txt");
$lines = explode("n",$cont, true);
if(in_array('$name', $line)) {
echo "Error user $name in database";
exit;}
У меня есть файл с именем пользователя в текстовом файле, который затем преобразуется в массив ($ lines)
Мне это нужно для поиска в массиве, чтобы увидеть, указано ли имя пользователя в текстовом файле
Комментарии:
1. Не уверен, где вы устанавливаете переменную $name в вашем примере кода, но вы не должны заключать ее в одинарные кавычки $.
2. Теперь вы всегда используете строку ‘$name’, а не переменную? Ваше условие должно выглядеть как «if (in_array($name, $ lines))»
Ответ №1:
Если переменная $name представляет собой строку с именем, которое вы хотели бы найти в массиве, созданном вами из файла, она должна выглядеть примерно так:
$cont = file_get_contents("users.txt");
$lines = explode("n", $cont, true);
if(in_array($name, $lines)) {
echo "Error user $name in database";
exit;
}
Я бы лично рекомендовал перейти к route of regular expressions, хотя. Кроме того, я вижу, что «взрыв» приводит к перегрузке памяти по мере роста файла и потенциально резко замедляет работу сайта.
Я не изучал это глубоко, но если вы собираетесь использовать плоский файл, вы можете попробовать что-то вродеhttp://www.niblr.com/php-flat-file-search-script / если в системе будет большое количество пользователей. Или даже просто запуск обычного выражения для результатов file_get_contents.