$type_id = preg_replace('#[^a-zA-Zа-яА-Я0-9]#i', '', $_GET['type']);
Как выяснилось позже отфильтрованная переменная таким образом отказывалась корректно записывать в файл некоторые русские буквы. Пример:
Е�е она п�обо запи�и ����кого �ек��а
Пробовал менять кодировки в файле и исполняемом php файле не помогло.
Сейчас появилась дополнительная задача. Необходимо пропускать и таким буквы: šāžčēūīōņŠĀŽČĒŪĪŌŠŅ.
Подскажите пожалуйста как правильно выйти с этой ситуации.
Или фильтровать таким же образом, но добавить еще и те символы, но нужно разобраться почему некоторые русские буквы некорректно пропускаются.
Или сделать фильтрацию на удаление "';:!№@#$%^&*()/\<>~
На мой взгляд второй вариант в данном случае лучше. Но подскажите пожалуйста какой командой это делает.
Спустя 1 минута, 58 секунд (23.09.2010 - 14:24) DedMorozzz написал(а):
добавь после/перед модификатором "i", ещё и "u"
Спустя 3 минуты, 16 секунд (23.09.2010 - 14:27) Dima85 написал(а):
DedMorozzz, помогло спасибо вам большое. А что именно дуют i и u?
Спустя 48 секунд (23.09.2010 - 14:28) DedMorozzz написал(а):
Указываешь, что работаем юникодом.
u = юникод
u = юникод
Спустя 2 минуты, 39 секунд (23.09.2010 - 14:31) Dima85 написал(а):
Спасибо еще раз. На другом форуме где задавал этот же вопрос провели большую дискую в конце концов так ни к чему и не пришли. А тут. Сразу же указали на ошибку. Спасибо.
Спустя 2 минуты, 2 секунды (23.09.2010 - 14:33) DedMorozzz написал(а):
Спустя 10 минут, 54 секунды (23.09.2010 - 14:44) Dima85 написал(а):
Немного смутила эта строчка:
Цитата |
( m ) – Этот модификатор указывается для того, чтобы строка проверялась от начала до самого конца. |
Но ведь приведенный мною пример без m и он тоже проверяет всю переменную. Или я ошибаюсь?
Во стальном все понятно, спасибо.
P.S. Форум посвящен именно php. Но возможно здесь найдется и Perl специалист. Я стараюсь учить 2 языка сразу. В Perl такая же конструкция будет выглядеть так:
$type_id=~s/[^ a-zA-Zа-яА-Я0-9]+//g;
Но у меня снова проблемы с некоторыми русскими символами. Почему?
Спустя 3 минуты, 12 секунд (23.09.2010 - 14:47) DedMorozzz написал(а):
Да, ты так и делаешь. Но веть бывают иные варианты. Когда ты не только 1 переменную рассматриваешь. Да и заменяешь по сложным условиям. Верно?
Спустя 2 минуты, 38 секунд (23.09.2010 - 14:50) Dima85 написал(а):
DedMorozzz, да, действительно. Не подумал об этом.