ZiEnTenIn
@ZiEnTenIn

Как в php выбрать определенные элементы из массива?

У меня есть код, выполняющий процедуру поиска пароля по логину в массиве:
$index = array_search($_POST['login'],$temp['login']);
if(password_verify($_POST['password'], $temp['password'][$index]) != $temp['password'][$index]) {
    $g = true;
    $err_pass_n2 = 'Введен неверный пароль!';
}

Мне нужно сделать похожую штуку, но уже не с условием if, а с четкой выборкой элементов, которые относятся в $index. Возможно ли это сделать и если да, то как?

И еще хотел сказать, что все было бы просто, если бы я работал с бд, но я работаю с файлом txt, в котором лежат логины, пароли и прочая ерунда, которую мне нужно вытащить. Знаю, что не безопасно, но мне так нужно...
  • Вопрос задан
  • 593 просмотра
Решения вопроса 1
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Используйте функцию array_filter() или простой перебор массива foreach и проверяйте в нём условие. В функции array_filter() есть callback в которую можно передать анонимную функцию и в ней сделать условие.

Чтение файла полностью
Если нам надо прочитать файл полностью, то мы можем облегчить себе жизнь, применив функцию file_get_contents():
$str = htmlentities(file_get_contents("auth.txt"));
echo $str;

При этом нам не надо открывать явно файл, получать дескриптор, а затем закрывать файл.

Поблочное считывание
Также можно провести поблочное считывание, то есть считывать определенное количество байт из файла с помощью функции fread():
$fd = fopen("auth.txt", 'r') or die("не удалось открыть файл");
while(!feof($fd)) {
    $str = htmlentities(fread($fd, 600));
    echo $str;
}
fclose($fd);


Конечно, это пример на простых функциях PHP без всякого ООП и инкапсуляции. Если не хотите заморачиваться есть готовая хорошая библиотека для работы с файлами flysystem
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы