[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление с переменной всего кроме букв и цифр.
Dima85
Ранее фильтровал данные таким образом:
$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 = юникод

Спустя 2 минуты, 39 секунд (23.09.2010 - 14:31) Dima85 написал(а):
Спасибо еще раз. На другом форуме где задавал этот же вопрос провели большую дискую в конце концов так ни к чему и не пришли. А тут. Сразу же указали на ошибку. Спасибо.

Спустя 2 минуты, 2 секунды (23.09.2010 - 14:33) DedMorozzz написал(а):
гляжу дополнил вопрос:
i - указывает, что регистр не имеет значения.
Вот почитай.

Спустя 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, да, действительно. Не подумал об этом.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.