Не работает регистронезависимость
1.
Удаленный (12.01.2016 / 15:42)
$login = $_POST['login'];
$name = $login; //имя которое ищем в списке
$adr = "user.txt";//Текстовый файл с именами пользователей в колонку
$names = file_get_contents($adr);
if ( preg_match('/^'.$name.'\:( .*?)\:( .*?)\:( .*?)/i',$names) ) {
echo "Такой логин уже есть";
} else {
echo "не Зарегистрирован такой логин";
}
Все работает кроме регистронезависимости. Где ошибка не пойму. Помогите
2.
ramzes (12.01.2016 / 16:39)
В файле только логины разделенные : ?
in_array(explode(':', $names))
---------
Если логины вкоючают кириллицу то модификатор u в регулярке нужен
3.
Вантуз-мен (12.01.2016 / 16:48)
1.
MaZaHaKeR, тут уж лучше искать в массиве чем регулярной, тем более у тебя регулярка не явная,
Добавлено через 01:23 сек.
2.
ramzes, там скорее всего
Саша:пароль:email:что-то
Петя:пароль итд
4.
Вантуз-мен (12.01.2016 / 16:59)
1.
MaZaHaKeR,
if(stripos(file_get_contents('file.txt'), PHP_EOL.$name.':') !== false)
думаю самый быстрый вариант
5.
Вантуз-мен (12.01.2016 / 22:52)
Хотя нет, первую строку не найдет
Вот так лучше
<?php
$search = false;
$file = file('file.txt');
foreach ($file as $key => $line){
$line = explode(':', $line);
if ($login === $line[0]) {
$search = true;
break;
}
}
if ($search) {
echo "Такой логин уже есть";
} else {
echo "не Зарегистрирован такой логин";
}
Добавлено через 03:57 сек.
А еще лучше используй мой класс, специально для работы с файлами
https://github.com/visavi/flystring
с моим классом это будет вот так
<?php
$fly = new Visavi\FlyString('file.txt', ':');
$search = $fly->search(0, $login);
if ($search) {
echo "Такой логин уже есть";
} else {
echo "не Зарегистрирован такой логин";
}
$string вернет массив данных и номер строки или false если не найдено
6.
Удаленный (13.01.2016 / 16:46)
спасибо вам всем
URL:
https://visavi.net/topics/42775