[PHP] Проверка на существование строки
|
|
Бывалый
247 сообщений
Мужчина
|
Всем здрасти. Запоролся на одной из задач скрипта - надо сделать, чтобы нельзя было добавлять одинаковые строки. Сделал так Code $total = count('cars.txt'); for ($i=0; $i>$total; $i++){ //Запускаем цикл if ($openfile[$i] == "$data") { break; } } if ($i!=$total) { echo 'Такая строка уже есть, извините'; exit(); } else { echo 'Спасибо за добавление новой строки'; exit(); } Кажется вроде все легко, но даже если есть такая строка, он её все равно добавляет. Где ошибка?
|
|
|
|
|
uSite Team
535 сообщений
Мужчина
|
Code $count = file_get_contents('cars.txt'); if(strpos($data, $count)===false){ echo 'Спасибо за добавление новой строки'; } else{ echo 'Такая строка уже есть, извините'; } Как я понял $data содержит строку для поиска, cars.txt - файл в котором искать.
|
|
|
|
|
Бывалый
247 сообщений
Мужчина
|
jQuery а если в файле много строк?
|
|
|
|
|
uSite Team
535 сообщений
Мужчина
|
и что?
|
|
|
|
|
Бывалый
247 сообщений
Мужчина
|
jQuery ну получается, что если строки в таком виде То код определит что строки data2 и data1 вообще не существует, то есть он проверяет только последнюю строку.Добавлено (26.10.2011, 18:27) --------------------------------------------- ап
|
|
|
|
|
uSite Team
535 сообщений
Мужчина
|
Кто сказал что только последнюю? Он по всему файлу ищет.
|
|
|
|
|
Бывалый
247 сообщений
Мужчина
|
Quote (jQuery) Кто сказал что только последнюю? Он по всему файлу ищет. Результат эксперементов. Может эта фигня из-за символа перевода строки - \n ?
|
|
|
|
|
uSite Team
535 сообщений
Мужчина
|
Да не может быть такого. file_get_contents получает всё содержимое файла, strpos ищет по этому содержимому.
|
|
|
|
|
Бывалый
247 сообщений
Мужчина
|
jQuery представь себе может.
|
|
|
|
|
uSite Team
535 сообщений
Мужчина
|
Ну тогда переделаем твой код: Code $total = count('cars.txt'); $data = 'Спасибо за добавление новой строки'; for ($i=0; $i>$total; $i++){ if ($openfile[$i] == $data) { $data = 'Такая строка уже есть, извините'; break; } } echo $data;
|
|
|
|
|
Бывалый
247 сообщений
Мужчина
|
jQuery это вообще не понятно что
|
|
|
|
|
uSite Team
535 сообщений
Мужчина
|
Бле*ть как это может быть не понятно что, если я тупо вынес условие в цикл и всё, т.е 100% твоего кода.
|
|
|
|
|
Бывалый
247 сообщений
Мужчина
|
jQuery да потому, Code $data = 'Спасибо за добавление новой строки'; Присваивание переменной Code if ($openfile[$i] == $data) { Сравнение строки с этой переменной
P.S. Уже не надо.
|
|
|
|
|
uSite Team
535 сообщений
Мужчина
|
Да переименовать переменную и готово. Тема закрыта.
|
|
|
|
|
Бывалый
247 сообщений
Мужчина
|
Тему офф.
|
|
|
|
|
uSite Team
3601 сообщениий
Мужчина
|
не закрыл ололо
По всем вопросам обращаемся на support@usite.su
|
|
|
|
|