2013-11-27 5 views
1

Got текст немного, как это выходит из базы данныхPHP preg_replace с новой строкой

[color=#BF0000]This is just a very simple test. 
Cheers Fred[/color] 

Теперь этот текст мог бы где-нибудь в новых строках его между [color...] и [/color].

пытался использовать это регулярное выражение в preg_replace, это картина

\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[\/color\]/i 

и заменяется

<span style=\"color:$1\">$2</span> 

Все прекрасно работает, если нет перевода строки в тексте. Я знаю, что мне нужно внести изменения около (.*?), но не знаю, что, может ли кто-нибудь помочь в этом?

ответ

2

Используйте s модификатор, чтобы сделать матч точки новой строки:

'~\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z-]+)\](.*?)\[/color\]~is' 

Также вы можете использовать альтернативные регулярки разделитель, чтобы избежать побега слеша.

+0

* Groan * как простой при этом, я пробовал все, но это, спасибо – Martin

+0

@Martin: Это сработало для вас? – anubhava

Смежные вопросы