Страница 1 из 1

[PHP] порядок выполнения

Добавлено: 2009-11-13 15:03:21
Alex Keda

Код: Выделить всё

$ret = preg_replace("#\[man\]([a-z0-9&\-_.]+?)\[/man\]#is", mb_strtolower("<a target=\"_blank\" class=\"text_link\" href=\"http://man.freebsd.org/\\1/\">\\1</a>"), $ret);
такая вот хреновина.
есть проблема. написать красиво - будет [man]ZFS[/man]. Но линк не работает - на той стороне - хотят мелкими бувами.
вот тут начинается проблема. ни вариант что выше, ни этот:

Код: Выделить всё

$ret = preg_replace("#\[man\]([a-z0-9&\-_.]+?)\[/man\]#is", "<a target=\"_blank\" class=\"text_link\" href=\"http://man.freebsd.org/" . mb_strtolower('\\1') . "/\">\\1</a>", $ret);
маленькими буквами не делают.
ибо вначале выполянется mb_strtolower('\\1'), а уже затем подстановка =(
как бы извернуться красиво?

Re: [PHP] порядок выполнения

Добавлено: 2009-11-13 17:27:56
zg
lissyara писал(а):как бы извернуться красиво?
через колбэк

Re: [PHP] порядок выполнения

Добавлено: 2009-11-13 17:56:42
Alex Keda
это некрасиво...
да и решение я такое знаю и юзаю местами.
хочеться красиво!

Re: [PHP] порядок выполнения

Добавлено: 2009-11-13 18:01:23
zg
lissyara писал(а):хочеться красиво!
красиво, это через пространство имён -> класс -> колбэк :smile:

Re: [PHP] порядок выполнения

Добавлено: 2009-11-13 18:28:32
zg

Код: Выделить всё

$ret = preg_replace(
	'#\[man\]([a-z0-9&\-_\.]+?)\[/man\]#ise', 
	'\'<a target="_blank" class="text_link" href="http://man.freebsd.org/\'. strtolower(\'\\1\') .\'/">\\1</a>\'', 
	$ret
);