Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярные выражения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Area
Отправлено: 27 Марта, 2013 - 11:02:00
Post Id


Частый гость


Покинул форум
Сообщений всего: 204
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Прошу написать пример.
Есть :1234,123,123,321,

Нужно через выражение, проверить есть ли указанное число в тех числах. Которые перечислены через запятую.

Или создать массив и выставить в условие.
К примеру так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. in_array($_POST['gdelet'], array(1,2,3,4,5,6,7))



Что быстрей будит рабоатть?
 
 Top
vanicon
Отправлено: 27 Марта, 2013 - 11:06:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Area пишет:
Что быстрей будит рабоатть?

Надо измерять...
Но я думаю что массивом быстрее будет...


-----
Так было, так есть и так будет
 
 Top
Area
Отправлено: 27 Марта, 2013 - 12:07:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 204
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Вот не подскажите.
Если найдено совпадение, то не пропускаем.


Совпадение есть но почему та пропускает. Как решить, если получаю строчку '23,3,3' ,а не 23,3,3.
 
 Top
vanicon
Отправлено: 27 Марта, 2013 - 12:11:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




PHP:
скопировать код в буфер обмена
  1. $array = explode(',', $ol['id']);
  2. if(!in_array($id, $array))

(Отредактировано автором: 27 Марта, 2013 - 12:12:24)



-----
Так было, так есть и так будет
 
 Top
Area
Отправлено: 27 Марта, 2013 - 12:19:07
Post Id


Частый гость


Покинул форум
Сообщений всего: 204
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Тогда еще и explode( придется прикручивать. Можно пример с регулярным выражением.
 
 Top
zypikov
Отправлено: 27 Марта, 2013 - 13:10:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




Area пишет:
Есть :1234,123,123,321,
. Это строка?
Мне не совсем понятно, зачем тут регулярное выражение. Если вышеуказанная - строка и нужно проверить есть ли число к примеру 123 в ней, то просто
PHP:
скопировать код в буфер обмена
  1. if(preg_match("123","1234,123,123,321")) {
  2. если есть такое.. до делаем это ;
  3. }else{
  4. делаем че то другое;
  5. }


-----
У всего есть обратная сторона.
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Марта, 2013 - 13:15:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




zypikov пишет:
Мне не совсем понятно, зачем тут регулярное выражение
Затем, что твой пример вместе с 123 найдет и 987123987 и 71238 и пр..
 
 Top
zypikov
Отправлено: 27 Марта, 2013 - 13:46:07
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




Может так?
PHP:
скопировать код в буфер обмена
  1.  
  2. $ch = "123";
  3. $path = "1234,123,321";
  4. if(preg_match("/(?<=,)$ch(?=,)/i", $path)) { echo "есть совп"; }
  5.  


-----
У всего есть обратная сторона.
 
 Top
Area
Отправлено: 27 Марта, 2013 - 14:07:42
Post Id


Частый гость


Покинул форум
Сообщений всего: 204
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Спс. Можно ли замер еще, я что та путаю. И у меня время получается:7.0E-5
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Марта, 2013 - 14:17:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. $start = microtime(true);
  2. // работаем
  3. echo "Скрипт работал " . (round(microtime(true) - $start, 3)) . " секунд.";
 
 Top
Area
Отправлено: 27 Марта, 2013 - 15:15:27
Post Id


Частый гость


Покинул форум
Сообщений всего: 204
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Где та ошибка, показывает 0.
 
 Top
vanicon
Отправлено: 27 Марта, 2013 - 15:36:47
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




PHP:
скопировать код в буфер обмена
  1. $start = microtime(true);
  2. // работаем
  3. echo "Скрипт работал " . (round(microtime(true) - $start, 5)) . " секунд.";


-----
Так было, так есть и так будет
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB