[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вытащить строку без паразитных символов
baston
Замылился глаз у меня сегодня. Не могу сообразить, как вытащить строку без паразитных символов, типа запятых, кавычек и иже с ними.
Вот есть текст в переменной $str и надо получить этот же текст, но без паразитных символов, о чем указал выше.
Делаю так:
$str = 'Проект, задуманный как «дом для отдыха в естественной обстановке», 
представляет небольшой двухэтажный прямоугольник (5,85х7 м) со скатной
кровлей, позволяющий в полной мере насладиться окружающим видом на горы.
В общем-то простой и небольшой дом получился довольно гармоничным,
заметным и современным.';
$pattern = "#[^\w|\d|\s|\'|\"|\.|\!|\?|;|,|\\|\/|\«|\»|:|\&|@)]+#";
$res = preg_match($pattern, $str, $matches);
echo $matches[1];</span>

Не получаю того, чего хочу, а именно строку без паразитных символов.

Подскажите, пожалуйста. Поправьте.
Спасибо.



Спустя 25 минут, 22 секунды (24.02.2010 - 16:45) Oyeme написал(а):
$pattern = array('/,/','/\./','/"/');
$to = array('','','');
$str = preg_replace($pattern,$to, $str);

Можно так..
Перечисляаешь своих паразитов в перемной $pattern,$to - заменяемый символ.

Спустя 2 минуты, 45 секунд (24.02.2010 - 16:48) TakoY написал(а):
омг ))) а зачем вытаскивать сроку если можно просто заменнить "паразитные символы" на пусто.

$new_text=preg_replace('#(\'|\"|\«|\»|:|\&|@)#', '', $text);

Спустя 6 минут, 3 секунды (24.02.2010 - 16:54) baston написал(а):
TakoY, да, такой вариант подойдет.
Но мне все равно не понятно, почему тогда мой вариант не срабатывает? Почему строка не получается через preg_match?

Спустя 4 минуты, 21 секунда (24.02.2010 - 16:58) twin написал(а):
TakoY
Цитата
омг )))

Никогда не говори - я все знаю. Иначе могут спросить - в каком году родился Архимед.
Зачем вообще там регулярки?
$pattern = array(',','.','"');
$str = str_replace($pattern, '', $str);

Спустя 16 секунд (24.02.2010 - 16:59) TakoY написал(а):
просто не стоит идти по сложному пути если можно сделатоь гораздо проще, чтото в маске не правильно вот и не неработает )

Спустя 2 минуты, 18 секунд (24.02.2010 - 17:01) TakoY написал(а):
twin, я такого и не говорил и даже не имел ввиду

Спустя 2 минуты, 13 секунд (24.02.2010 - 17:03) baston написал(а):
$pattern = "#[\.\,\'\"\(\)\d\«\»]#";
$r = trim(preg_replace($pattern, "", $str));
$text = explode(" ", $r);

Вот так работает исключительно хорошо в кодировке ANSI, а в UTF8 в некоторых словах квадратики...
user posted image

P.S. Twin, конечно можно другим способом сделать, это я рассматриваю различные варианты, в том числе и регуляркой. Для практики, так сказать.

Спустя 1 минута, 49 секунд (24.02.2010 - 17:05) baston написал(а):
То есть, это буква "л" капризничает...

Спустя 9 минут, 48 секунд (24.02.2010 - 17:15) Oyeme написал(а):
Это если он захочет каждый символ по своему заменить.

Спустя 25 минут, 41 секунда (24.02.2010 - 17:41) twin написал(а):
baston
Цитата
P.S. Twin, конечно можно другим способом сделать, это я рассматриваю различные варианты, в том числе и регуляркой. Для практики, так сказать.

Это плохая практика - забивать гвозди микроскопом. И еще при этом спрашивать - а почему же плохо лезут то они. smile.gif

Спустя 7 дней, 22 часа, 3 минуты, 10 секунд (2.03.2010 - 15:44) alpeen написал(а):
Не хочу создавать новую тему, так как вопрос в общем схож с топиком.
Как мне избавится от паразитных символов в строке , где встречаются всякие картинки и псевдографика, типа всяких домиков, сердечек ღ♥ღ палочек и т.п.?

Эдит. Хочу, чтобы оставались только русские и(или) латинские буквы и пробел с подчеркиванием, а вся эта муть отсекалась.

Спустя 8 часов, 31 минута, 13 секунд (3.03.2010 - 00:15) TakoY написал(а):
$text=preg_replace('/[^0-9a-zа-я_\- ]/i', '', $text);
а цифры ?

Спустя 3 минуты, 50 секунд (3.03.2010 - 00:19) DedMorozzz написал(а):
букву Ё пропустил smile.gif
$text=preg_replace('/[^0-9a-zа-яё_\.\- ]/i', '', $text); 
Тут её точку мона
Быстрый ответ:

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