Помощь с php-массивами

#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.