Результаты поиска
Введите запрос, по завершению нажмите Enter.
  • Страница 1 из 1
  • 1
[PHP] Проверка на существование строки
Отправлено 26.10.2011 - 17:161
Нет аватара
Бывалый
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();
     }

Кажется вроде все легко, но даже если есть такая строка, он её все равно добавляет.
Где ошибка?
Профиль Личное сообщение Дом. страница icq Skype
109
Отправлено 26.10.2011 - 17:242
Нет аватара
uSite Team
535 сообщений
Мужчина
Code
$count = file_get_contents('cars.txt');
if(strpos($data, $count)===false){
echo 'Спасибо за добавление новой строки';  
}
else{
echo 'Такая строка уже есть, извините';
}

Как я понял $data содержит строку для поиска, cars.txt - файл в котором искать.
Профиль Личное сообщение Дом. страница icq Skype
114
Отправлено 26.10.2011 - 17:313
Нет аватара
Бывалый
247 сообщений
Мужчина
jQuery а если в файле много строк?
Профиль Личное сообщение Дом. страница icq Skype
109
Отправлено 26.10.2011 - 17:344
Нет аватара
uSite Team
535 сообщений
Мужчина
и что?
Профиль Личное сообщение Дом. страница icq Skype
114
Отправлено 26.10.2011 - 18:275
Нет аватара
Бывалый
247 сообщений
Мужчина
jQuery ну получается, что если строки в таком виде
Quote
data1
data2
data3

То код определит что строки data2 и data1 вообще не существует, то есть он проверяет только последнюю строку.

Добавлено (26.10.2011, 18:27)
---------------------------------------------
ап

Профиль Личное сообщение Дом. страница icq Skype
109
Отправлено 26.10.2011 - 18:506
Нет аватара
uSite Team
535 сообщений
Мужчина
Кто сказал что только последнюю? Он по всему файлу ищет.
Профиль Личное сообщение Дом. страница icq Skype
114
Отправлено 26.10.2011 - 18:517
Нет аватара
Бывалый
247 сообщений
Мужчина
Quote (jQuery)
Кто сказал что только последнюю? Он по всему файлу ищет.

Результат эксперементов. Может эта фигня из-за символа перевода строки - \n ?
Профиль Личное сообщение Дом. страница icq Skype
109
Отправлено 26.10.2011 - 18:538
Нет аватара
uSite Team
535 сообщений
Мужчина
Да не может быть такого. file_get_contents получает всё содержимое файла, strpos ищет по этому содержимому.
Профиль Личное сообщение Дом. страница icq Skype
114
Отправлено 26.10.2011 - 19:119
Нет аватара
Бывалый
247 сообщений
Мужчина
jQuery представь себе может.
Профиль Личное сообщение Дом. страница icq Skype
109
Отправлено 27.10.2011 - 22:3410
Нет аватара
uSite Team
535 сообщений
Мужчина
Ну тогда переделаем твой код:
Code
$total = count('cars.txt');
$data = 'Спасибо за добавление новой строки';     
for ($i=0; $i>$total; $i++){   
   if ($openfile[$i] == $data) {   
    $data = 'Такая строка уже есть, извините';
    break;   
   }
}
echo $data;
   
Профиль Личное сообщение Дом. страница icq Skype
114
Отправлено 28.10.2011 - 10:1811
Нет аватара
Бывалый
247 сообщений
Мужчина
jQuery это вообще не понятно что :D
Профиль Личное сообщение Дом. страница icq Skype
109
Отправлено 28.10.2011 - 17:3012
Нет аватара
uSite Team
535 сообщений
Мужчина
Бле*ть как это может быть не понятно что, если я тупо вынес условие в цикл и всё, т.е 100% твоего кода.
Профиль Личное сообщение Дом. страница icq Skype
114
Отправлено 29.10.2011 - 12:5113
Нет аватара
Бывалый
247 сообщений
Мужчина
jQuery да потому,
Code
$data = 'Спасибо за добавление новой строки';

Присваивание переменной
Code
if ($openfile[$i] == $data) {

Сравнение строки с этой переменной
:D

P.S. Уже не надо.
Профиль Личное сообщение Дом. страница icq Skype
109
Отправлено 30.10.2011 - 00:1414
Нет аватара
uSite Team
535 сообщений
Мужчина
Да переименовать переменную и готово. Тема закрыта.
Профиль Личное сообщение Дом. страница icq Skype
114
Отправлено 30.10.2011 - 09:3415
Нет аватара
Бывалый
247 сообщений
Мужчина
Тему офф.
Профиль Личное сообщение Дом. страница icq Skype
109
Отправлено 30.10.2011 - 11:4016
Нет аватара
uSite Team
3601 сообщениий
Мужчина
не закрыл
ололо
По всем вопросам обращаемся на support@usite.su
Профиль Личное сообщение Дом. страница icq Skype
583
  • Страница 1 из 1
  • 1
Поиск:
uSite.su © 2010-2024
Все права защищены.
Многогранность и сверхспособности сообщества uCoz заставляют задуматься даже самые стойкие умы веб-программирования, ведь лишь uSite способен предоставить ответы на самые сложные вопросы uCoz.
01RSS
Хостинг от uCozПользовательское соглашение и прочая информация