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]   

> Описание: Из строки удаляем не нужные символы
Sanek_OS9
Отправлено: 16 Ноября, 2012 - 21:00:48
Post Id



Гость


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


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




Здраствуйте Улыбка идея заключается вот в чём, в переменную попадает например строка "Test?!", мне в базу нужно занести только слово Test, я коечто нашол и получилась такая вот функция:
PHP:
скопировать код в буфер обмена
  1. function my_opt($str) {
  2. $str = str_replace('!','', $str);
  3. $str = str_replace('@','', $str);
  4. $str = str_replace('#','', $str);
  5. $str = str_replace('$','', $str);
  6. $str = str_replace('%','', $str);
  7. $str = str_replace('^','', $str);
  8. $str = str_replace('&','', $str);
  9. $str = str_replace('*','', $str);
  10. $str = str_replace('(','', $str);
  11. $str = str_replace(')','', $str);
  12. $str = str_replace('-','', $str);
  13. $str = str_replace('=','', $str);
  14. $str = str_replace('+','', $str);
  15. $str = str_replace('"','', $str);
  16. $str = str_replace(';','', $str);
  17. $str = str_replace(':','', $str);
  18. $str = str_replace(',','', $str);
  19. $str = str_replace('.','', $str);
  20. $str = str_replace('?','', $str);
  21. $str = str_replace('/','', $str);
  22. $str = str_replace('\\','', $str);
  23. $str = str_replace('?','', $str);
  24. $str = str_replace('\'','', $str);
  25. $str = str_replace('№','', $str);
  26. $str = str_replace('>','', $str);
  27. $str = str_replace('<','', $str);
  28. return $str;
  29. }
  30.  

Скорее всего вы посчитаете это за быдлокод Радость вот собственно и сама проблема, как из этого не хорошего кода сделать нормальный, то есть более удобный и правельный аналог если таков есть.
 
 Top
esterio
Отправлено: 16 Ноября, 2012 - 21:07:43
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




 
 Top
Мелкий Супермодератор
Отправлено: 16 Ноября, 2012 - 21:09:22
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Соберите символы, которые надо заменять, в массив и скормите str_replace этот массив.


-----
PostgreSQL DBA
 
 Top
Dezmont
Отправлено: 16 Ноября, 2012 - 21:10:50
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


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




Почитайте информацию по ссылке и будет Вам счастье. Радость
 
 Top
Sanek_OS9
Отправлено: 16 Ноября, 2012 - 21:15:29
Post Id



Гость


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


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




esterio пишет:

Может я что то не правельно делаю, но пробовал по разному но не работает, вот например:
PHP:
скопировать код в буфер обмена
  1. $string="@#$%Привет!!!";
  2. $string=preg_replace('/\W+/', '', $string);
  3. echo $string;
  4.  

(Добавление)
Dezmont пишет:
Почитайте информацию по ссылке и будет Вам счастье. Радость

Благодарю Улыбка
 
 Top
NoPaper
Отправлено: 16 Ноября, 2012 - 21:27:23
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. $bad_symbols = array('#','$','%');//Дополнишь...
  3. return str_replace($bad_symbols ,'', $str);
  4.  
 
 Top
Sanek_OS9
Отправлено: 16 Ноября, 2012 - 21:42:55
Post Id



Гость


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


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




Остановился вот на этом варианте:
PHP:
скопировать код в буфер обмена
  1. function my_opt($str) {
  2. $array = array('!','@','#','$','%','?','>','<','+','^','&','*','(',')','/',',','.','-','№',';',':','=','"');
  3. $str = str_replace($array,'', $str);
  4. return $str;
  5. }
  6.  

NoPaper, спасибо Улыбка
 
 Top
esterio
Отправлено: 17 Ноября, 2012 - 10:31:48
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Sanek_OS9 пишет:
Может я что то не правельно делаю, но пробовал по разному но не работает, вот например:


\W с кирилицей так просто не работает. Нужно настроить локаль. + регулярка не правильная, я просто пример набросал
 
 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