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
Форумы портала PHP.SU :: Версия для печати :: Как проверить есть ли в строке символ запятой?
Форумы портала PHP.SU » PHP » Регулярные выражения » Как проверить есть ли в строке символ запятой?

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

1. Никорагоа - 22 Сентября, 2012 - 15:26:18 - перейти к сообщению
Всем привет! Как ни пробовал разобраться с регулярками, но не могу и все Огорчение
Но не будем о грустном Радость
Из базы получаю строку.Она можеть быть вот такой 22,34,45,87,55, а может и вот такой 43(просто одно число).Нужно задать условие: если есть запятая то одно действие если нету то другое. Не думаю что это супер сложно для вас и заранее благодарю.
2. Мелкий - 22 Сентября, 2012 - 15:36:30 - перейти к сообщению
strpos!==false ?
3. DelphinPRO - 22 Сентября, 2012 - 18:32:26 - перейти к сообщению
тут нужно знать что за задача стоит перед тобой в принципе.
Потому что проверять наличие запятой, лично мне, кажется неправильной затеей.
Что такое эти числа? Какие-то идентификаторы?
Если их много, что с ними делаете? И чем это действие отличается от случая, когда число одно? (не программным кодом, а логически)
4. Никорагоа - 23 Сентября, 2012 - 16:32:43 - перейти к сообщению
Эти числа индетификаторы, если их несколько то я хочу превратить их в массив при помощи функции explode, если одна то делать другое....
типа так:
PHP:
скопировать код в буфер обмена
  1.  
  2. if($string имеет запятую){
  3. explode(',',$string);
  4. }else{
  5. //какое то др действие
  6. }
  7.  
5. AlexAnder - 23 Сентября, 2012 - 16:47:41 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $string = '22,34,45,87,55';
  3. $len = strlen($string);
  4. $count = 0;
  5. for($i=0;$i<$len;$i++){
  6.         if($string[$i]==',') $count++;
  7. }
  8. if($count>=1){
  9.         $exp = explode(',',$string);
  10.         print_r($exp);
  11.         }
  12. else echo '$string = \''.$string.'\'';
  13. ?>

Хм
6. vanicon - 23 Сентября, 2012 - 16:52:55 - перейти к сообщению
Не думаю что тут необходим цикл.
PHP:
скопировать код в буфер обмена
  1. $mystring = '22,34,45,87,55';
  2. $pos = strpos($mystring,',');
  3. if ($pos === false) {
  4.     echo 'Запятой нет в '.$mystring;
  5. } else {
  6.    $exp = explode(',',$mystring);
  7.         print_r($exp);
  8. }
7. DelphinPRO - 23 Сентября, 2012 - 17:19:52 - перейти к сообщению
Никорагоа пишет:
Эти числа индетификаторы, если их несколько то я хочу превратить их в массив при помощи функции explode, если одна то делать другое....
да понял я. не понимаю, зачем делать разные действия для одного и нескольких иднтификаторов. обрабатывайте один так же как и несколько.
т.е. делаете explode получаете массив с одним или несколькими элементами. в цикле foreach обрабатываете все идентификаторы.

 

Powered by ExBB FM 1.0 RC1