Другие языки программирования и технологии
Скажите пожалуйста как передать данные из текстового файла в массив на php
в файле хранятся логины и паролине обязательно писать весь ко просто обьясните на пальцахзаранее спасибо
А файл не закодирован? Если требуется лишь построчно считать данные из текстового файла, то
$file = file(path);
foreach ($file as $str) { // $str на каждой итерации - очередная строка
// действия
}
$file = file(path);
foreach ($file as $str) { // $str на каждой итерации - очередная строка
// действия
}
Если логины/пароли хранятся в текстовом файле/БД, то их надо выкинуть в топку вместе со всеми админами и разработчиками
Насколько я знаю в пхп такое не делается, для этого пишутся спец скрипты (напимер на перл)
Но в принципе зачем это вам то?
Намного легче скачать уже готовый серв (например апатрч) и не дурить себе голову самопалом
Но в принципе зачем это вам то?
Намного легче скачать уже готовый серв (например апатрч) и не дурить себе голову самопалом
В php есть полезная функция serialize. Она выполняет преобразование массива к строке, что позволяет эту строку записать в файл к примеру. Обратная ей функция- unserialize. Вот пример работы:
$logins=array('login1'=>'password1', 'login2'=>'password2');
file_put_contents(serialize($logins), 'data/logins.dat');
$logins=unserialize(file_get_contents('data/logins.dat'));
Если Вы решили хранить именно связку логин-пароль, то целесообразно хранить не сам пароль, а его хэш, например полученный от функции md5(), то есть когда пользователь будет проходить авторизацию сравнивать надо будет не сами пароли, а их хэши.
Так как Вы решили хранить данные в текстовом файле (ничего страшного в этом нет на самом деле) , то в файле .htaccess вам необходимо будет установить запрет на открытие файлов, где хранятся Ваши данные, чтобы набрав адрес ваш_сайт/data/logins.dat никто не увидел содержимое файла. То есть Вы заранее определяете, что в файлах с расширением dat у Вас будут хранится служебные данные, и тогда в файл .htaccess Вы должны записать строки:
<files ~ "\.dat$|\.inc$|\.bak$|\.old$|\.log|\.txt$">
Order allow,deny
Deny from all
</files>
я немного больше расширений блокирую для открытия. Лишние- уберете, а если еще нужны- добавите.
Вот как-то так.
$logins=array('login1'=>'password1', 'login2'=>'password2');
file_put_contents(serialize($logins), 'data/logins.dat');
$logins=unserialize(file_get_contents('data/logins.dat'));
Если Вы решили хранить именно связку логин-пароль, то целесообразно хранить не сам пароль, а его хэш, например полученный от функции md5(), то есть когда пользователь будет проходить авторизацию сравнивать надо будет не сами пароли, а их хэши.
Так как Вы решили хранить данные в текстовом файле (ничего страшного в этом нет на самом деле) , то в файле .htaccess вам необходимо будет установить запрет на открытие файлов, где хранятся Ваши данные, чтобы набрав адрес ваш_сайт/data/logins.dat никто не увидел содержимое файла. То есть Вы заранее определяете, что в файлах с расширением dat у Вас будут хранится служебные данные, и тогда в файл .htaccess Вы должны записать строки:
<files ~ "\.dat$|\.inc$|\.bak$|\.old$|\.log|\.txt$">
Order allow,deny
Deny from all
</files>
я немного больше расширений блокирую для открытия. Лишние- уберете, а если еще нужны- добавите.
Вот как-то так.
$file = "files/file.txt";
$r = fopen($file,'r');
$str = fgets($r);
fclose($r);
Теперь в массиве $str[] все записи из файла "file.txt".
К примеру: $str[1] = Первый символ из файла.
$str['2'] = Второй символ из файла и т. д.
Это если по символам нада.
Вариант 2: По строкам
$file = file(files/file.txt);
$str = trim($file[1]);
$str2 = trim($file[2]);
...
$strN = trim($file[N]);
Теперь в массиве $str[] все записи из 1-ой строки файла "file.txt".
в массиве $str2[] все записи из 2-ой строки файла "file.txt".
в массиве $strN[] все записи из N-ой строки файла "file.txt".
$r = fopen($file,'r');
$str = fgets($r);
fclose($r);
Теперь в массиве $str[] все записи из файла "file.txt".
К примеру: $str[1] = Первый символ из файла.
$str['2'] = Второй символ из файла и т. д.
Это если по символам нада.
Вариант 2: По строкам
$file = file(files/file.txt);
$str = trim($file[1]);
$str2 = trim($file[2]);
...
$strN = trim($file[N]);
Теперь в массиве $str[] все записи из 1-ой строки файла "file.txt".
в массиве $str2[] все записи из 2-ой строки файла "file.txt".
в массиве $strN[] все записи из N-ой строки файла "file.txt".
Похожие вопросы
- Считывание данных из текстового файла С++
- Как занести данные считанные из файла в массив на языке си?
- Как на PHP получать пути к файлам из массива names в теге input при загрузке некольких файлов?
- Нужно получить массив слов из текстового файла
- задача TurboPascal с текстовым файлом, помогите....
- Написать программу которая подсчитывает частоту встречаемости символов в заданном текстовом файле С++
- Извлечение ссылки из текстовых файлов
- Скопировать из текстового файла .txt часть строк c 1 по 3000, затем с 3000 по 6000 и так до конца файла.
- Есть ли какие-либо стандарты по упаковки потока данных для передачи файлов?
- Как подсчитать дубли строк в текстовом файле?