用nl2br
处理了从数据库里取的数据,不想使用
换行,想使用
分段。
网上找到的方法:
<code><div>本文来*源gaodai^.ma#com搞#代!码网</div><pre>搞gaodaima代码
$content = ‘
‘.str_replace(“
“,”
“,$content).’
‘;
但是我的数据里还有别的一些标签,转换的时候就会有问题。
比如我有这样一段数据:
<code>blahblah<br /><pre class="prettyprint linenums"><code><br />blahblah<br />blahblah<br /></code>
就会变成
<code><p>blahblah</p><p><pre class="prettyprint linenums"><code></p><p>blahblah</p><p></code>
这样我的
<code></code>
代码块就被隔断了。
有没有什么办法不替换
<code></code>
里的换行?
回复内容:
用nl2br
处理了从数据库里取的数据,不想使用
换行,想使用
分段。
网上找到的方法:
<code>$content = '<p>'.str_replace("<br />","</p><p>",$content).'</p>';</code>
但是我的数据里还有别的一些标签,转换的时候就会有问题。
比如我有这样一段数据:
<code>blahblah<br /><pre class="prettyprint linenums"><code><br />blahblah<br />blahblah<br /></code>
就会变成
<code><p>blahblah</p><p><pre class="prettyprint linenums"><code></p><p>blahblah</p><p></code>
这样我的
<code></code>
代码块就被隔断了。
有没有什么办法不替换
<code></code>
里的换行?
<code class="php">echo preg_replace('#([a-zA-Z]*)<br />#', "<p>$1</p>", "blahblah<br /><pre class="prettyprint linenums"><code><br />blahblah<br />blahblah<br /></code>
“);
p和br都是标签,没有什么转换的必要,你想要
的效果也就是为了好看点,所以直接用css就行了,别折腾PHP了。例如
<code>p br {margin-bottom: 1em;}p pre br {margin-bottom: 0;}</code>