В наличии PHP5, что является хорошим preg_replace
выражением для этого преобразования:
заменить символы новой строки на <br />
, но только в пределах <pre>
блоков
(Не стесняйтесь делать упрощающие предположения и игнорировать угловые случаи. Например, мы можем
Предположим, что теги будут одной строкой, а не патологическими вещами вроде)
Введите текст:
<code><div><pre class='some class'>1
2
3
line 1
line 2
line 3
Выход:
<code><div><pre>1<br />2<br />3<br />
line 1<br />line 2<br />line 3<br />
(Мотивирующий контекст: попытка закрыть ошибку 20760 в расширении SyntaxHighlight_GeSHI в Викискладе и найти мои навыки работы с PHP (я в основном использую Python) не до конца
Я открыт для других решений, кроме regexen, но предпочтение отдается маленькому (например, сборка html-машин разбирается излишне).