Stokta PHP5'ta, bu dönüşümü yapmak için iyi bir preg_replace
ifadesi budur:
replace newlines with <br />
, ancak <pre>
blok içinde strong>
(Feel free to make simplifying assumptions, and ignore corner cases. For example, we can assume that tags will be one line, and not pathological things like )
Giriş metni:
<div><pre class='some class'>1
2
3
</pre>
<pre>line 1
line 2
line 3
</pre>
</div>
Çıktı:
<div><pre>1<br />2<br />3<br /></pre>
<pre>line 1<br />line 2<br />line 3<br /></pre>
</div>
(Bağlam motive: Bir wikimedya SyntaxHighlight_GeSHI uzantısı hata 20760 kapatmak için çalışıyor, ve benim PHP becerileri (çoğunlukla Python yapmak) enfiye kadar değildir bulma).
Ben regexen yanı sıra, diğer çözümlere açığım, ama küçük (html ayrıştırma makineleri overkill bina, bir örnek olarak) tercih edilir.