|
|
|
| Привет всем !
Я не специалист в регулярных выражениях, прошу помощи у сообщества. Идея в том чтобы заменить в GET, POST параметрах английские буквы, входящие в ключевые слова на похожие русские. Хочу сохранить написание слов, ведь пользователь может написать другому "Нажми кнопку delete", поэтому и задумал реализовать этот вариант с подменой
Например (русские буквы выделены жирным):
select delete drop or where
т.е. нужно заменить английские буквы ОРЕАТ на русские аналоги. Думаю что регулярные выражения как раз и помогут , но не знаю как. | |
|
|
|
|
|
|
|
для: larush2
(06.04.2012 в 10:58)
| | РВ тут не нужны. Такую подмену можно осуществить функцией strtr():
<?
$text = "element"; // редактируемый текст
$from = "en"; // латинские буквы которые заменить
$to = "еп"; // русские буквы на которые заменить
echo strtr( $text , $from , $to ); // результат: еlеmепt
|
| |
|
|
|
|
|
|
|
для: Sfinks
(06.04.2012 в 11:51)
| | Спасибо, буду пробовать | |
|
|
|
|
|
|
|
для: larush2
(06.04.2012 в 13:21)
| | что-то с кодировкой... страница на которой написаны команды в UTF8, страница в браузере определена так же, а на экране русские буквы заменены квадратами. В чем может быть проблема ? | |
|
|
|
|
|
|
|
для: larush2
(09.04.2012 в 09:51)
| | С utf8 посложнее. Дело в том, что strtr() в том виде, как я написал работает с односимвольными строками. А utf8 - многосимвольная кодировка. Но есть второй вариант ее использования. В нем вместо $from и $to передается ассоциативный массив заменяемых пар, где ключ элемента массива - это from, а значение - это to:
<?
$replace = array(
"A" => "А",
"B" => "В",
"C" => "С",
"E" => "Е",
);
| при кодировке utf8 нужно использовать этот вариант.
<?
echo strtr( $text , $replace );
|
| |
|
|
|