Нужна функция что-бы удалить все символы, кроме букв. Есть ли такая?
_____________
Принимаю заказы, писать в ЛС
T1grOK
25.05.2014 - 10:54
preg_replace
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
$result = preg_replace('/[^a-zа-яё]+/i', '', $text);
$result = preg_replace('/[^a-zа-яё]+/iu', '', $text);
Так? А если кодировка заранее неизвесна?
_____________
Принимаю заказы, писать в ЛС
И ещё эксперементируя выяснил, что если передать #, а после текст, то текста не будет. Видимо php принимает за комментарий? Как тогда быть?
_____________
Принимаю заказы, писать в ЛС
AllesKlar
25.05.2014 - 12:40
обратный слеш перед спецсимволом
'\#'
_____________
[продано копирайтерам]
Цитата (AllesKlar @ 25.05.2014 - 12:40) |
обратный слеш перед спецсимволом '\#' |
Согласен. Но пользователю не скажешь перед # ставь \
_____________
Принимаю заказы, писать в ЛС
Варианты, как на стороне сервера перед # ставить \
_____________
Принимаю заказы, писать в ЛС
Kopipaster
25.05.2014 - 18:33
Цитата (Медведь @ 25.05.2014 - 10:45) |
Нужна функция что-бы удалить все символы, кроме букв. Есть ли такая? |
Зачем тебе?
Если пользователь ввёл:
<?php
$a="!@#$%^&*()_+::;/\\|";
echo htmlspecialchars($a);
$b= mysql_real_escape_string(trim($a));
?>
Игорь_Vasinsky
25.05.2014 - 18:52
\
зачем пробелы то вырезать? что за кощунство))
это нужно - когда нужно.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Не понял..)
Мне нужно удалить все символы, потому-что потом GET будет именем поля в форме.
Замена не получается.
_____________
Принимаю заказы, писать в ЛС
Медведь
Цитата |
Мне нужно удалить все символы, потому-что потом GET будет именем поля в форме. |
Не нужно тебе ничего удалять. Тебе наоборот нужно пропустить разрешенные, остальные нафиг. Иначе придется всю таблицу символов перечислять.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 26.05.2014 - 09:59) |
Медведь
Цитата | Мне нужно удалить все символы, потому-что потом GET будет именем поля в форме. |
Не нужно тебе ничего удалять. Тебе наоборот нужно пропустить разрешенные, остальные нафиг. Иначе придется всю таблицу символов перечислять. |
Полностью согласен, беру и делаю так:
$result = preg_replace('/[^a-zа-яё]+/i', '', $text);
но если теперь кто-то плохой вставит в форму #, то после # ничего не будет. Я подумал что это может быть
php так обрабатывает строку и после # ничего. Заменой убрать её не получается, ну не могу я понять почему и как убить эту решётку))?
_____________
Принимаю заказы, писать в ЛС
Kopipaster
26.05.2014 - 17:59
Цитата (Медведь @ 26.05.2014 - 17:45) |
но если теперь кто-то плохой вставит в форму #, то после # ничего не будет. Я подумал что это может быть php так обрабатывает строку и после # ничего. Заменой убрать её не получается, ну не могу я понять почему и как убить эту решётку))? |
Я всё таки не понимаю о чём речь.
$text ="Privet#22435676 !@#%^&*()_+Mir";
$result = preg_replace('/[^a-zа-яё]+/i', '', $text);
echo $result;
выводит
PrivetMir
Цитата (Kopipaster @ 26.05.2014 - 17:59) |
Цитата (Медведь @ 26.05.2014 - 17:45) | но если теперь кто-то плохой вставит в форму #, то после # ничего не будет. Я подумал что это может быть php так обрабатывает строку и после # ничего. Заменой убрать её не получается, ну не могу я понять почему и как убить эту решётку))? |
Я всё таки не понимаю о чём речь. $text ="Privet#22435676 !@#%^&*()_+Mir"; $result = preg_replace('/[^a-zа-яё]+/i', '', $text); echo $result; выводит PrivetMir |
У меня после # идёт текст (например) и после решётки текст стирается.
_____________
Принимаю заказы, писать в ЛС
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.