[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите про регулярные выражения
Xes
Один хороший человек подсказал мне такую штуку
preg_replace('/"([^"]+)"/',"«$1»", 'Строка " с кавычками"')
Я хочу заюзать это дела чтобы переводить в ВВ теги и обратна теги типа <b></b> <u></u>
Как это зделать в цикле или нескалько раз применить функции понятно. Можноли данное выражение записать в одну страку так если пееречислить все эти правила замены через запятаю?



Спустя 11 минут, 41 секунда (12.06.2011 - 10:31) nugle написал(а):
составляй два массива
1. типа <b></b>
2. типа [b][/b]
и используй функцию str_ireplace($search, $zamena, $text)

Спустя 28 минут, 36 секунд (12.06.2011 - 10:59) Xes написал(а):
SPASIBO

Спустя 21 минута, 18 секунд (12.06.2011 - 11:21) Xes написал(а):
Чето я не то делаю чтоли ?
Не заменяет.

$a = 'Текст <b>жирный</b>';
$search[] = '/<b>([^"]+)</b>/';
$replace[] = '{b}$1{/b}'; - здесь квадратные скобки
$b = str_ireplace($search,$replace, $a);
echo $b;

Спустя 29 минут, 59 секунд (12.06.2011 - 11:50) nugle написал(а):
делай так
$text = 'Текст <b>жирный</b>';
$fArr = array('<b>', '</b>');
$sArr = array('', '');
$b = str_ireplace($fArr,$sArr, $text);

Спустя 7 минут, 14 секунд (12.06.2011 - 11:58) Xes написал(а):
В этом случая как я понимаю будет идти просто замена без парности. Я хотел сразу двух зайцев убить. Если юзер незакрывает тег <b> то он не преобразуется ББ код и htmlspese.. преоброзует в метасимволы. а так могут остаться касяки, что весь текст станит жирным.
Ша попробую, может этим удовлетварюсь или в цикл буду заганять регулярные выражения подумаю.
Спасибо Работает.

Спустя 10 минут, 16 секунд (12.06.2011 - 12:08) Xes написал(а):
впринцыпи придумл регулярку надо типа такого
<если между этими тегами буква b или u или .....> Здес текст исключающий значения не парных символов <b> </b>... <если между этими тегами буква /b или /u или .....>
ТО преобразовать.
Пойду читать как это сделать )))

Спустя 6 минут, 16 секунд (12.06.2011 - 12:14) Xes написал(а):
Что значит $1 в регулярке - не как не найду ответ долор это конец строки

Спустя 1 минута, 14 секунд (12.06.2011 - 12:15) neadekvat написал(а):
$text = 'sdfsdf wefwef';

$text = preg_replace('#(\[(b)\])(.*?)(\[/\2\])#i', '<\2>\3</\2>', $text);
$text = preg_replace('#(\[(i)\])(.*?)(\[/\2\])#i', '<\2>\3</\2>', $text);
echo $text;

Меняешь только название тега.
Но у тегов еще есть параметры свои. Например, img, link.. Под них по-любому придется писать иначе.

Спустя 1 минута, 51 секунда (12.06.2011 - 12:17) neadekvat написал(а):
Цитата (Xes @ 12.06.2011 - 13:14)
Что значит $1 в регулярке - не как не найду ответ долор это конец строки

Доллар конце строки только в одной позции - перед закрывающимся символом, т.е.:
#^....$# <-- здесь
А если в середине - то это что-то вроде внутренней переменной, в которой находится то, что найдено в скобках.
Блин, не умею объяснять. Читай Фридла.
Быстрый ответ:

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