PHP рег заменить все [гекса] на строку цвета шрифта? - PullRequest
0 голосов
/ 23 марта 2011

У меня есть строка: $s="[#efefef]H[#fafafa]I!";

Как мне создать новую строку для этого, например:

$s2="<font color='#efefef'>H</font><font color='#fafafa'>I</font>!";

Спасибо

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Объект <font> устарел. Вместо этого используйте <span style="color: #efefef;">.

preg_replace("/\\[#([0-9a-f]+)\\]([^[]+)/i", "<span style=\"color: #\\1;\">\\2</span>", $s);
1 голос
/ 23 марта 2011

Для ваших примеров данных это должно работать хорошо:

$s2 = preg_replace('~\[(#[0-9a-f]{6})\]([A-Z])~',
                   "<font color='$1'>$2</font>", $s);

Возможно, вы захотите изменить заполнитель [A-Z] для ваших нужд.Это соответствует только одной заглавной букве, как в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...