php用<p>替换换行符的问题
伊谢尔伦
伊谢尔伦 2017-04-11 09:50:24
[PHP讨论组]

nl2br处理了从数据库里取的数据,不想使用<br>换行,想使用<p>分段。
网上找到的方法:

$content = '<p>'.str_replace("<br />","</p><p>",$content).'</p>';

但是我的数据里还有别的一些标签,转换的时候就会有问题。
比如我有这样一段数据:

blahblah<br />
<pre><code><br />
blahblah<br />
blahblah<br />
</code></pre>

就会变成

<p>blahblah</p><p>
<pre><code></p><p>
blahblah</p><p>
</code></pre></p>

这样我的<pre><code></code></pre>代码块就被隔断了。
有没有什么办法不替换<pre><code></code></pre>里的换行?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
怪我咯
echo preg_replace('#([a-zA-Z]*)<br\s*\/>#', "<p>$1</p>", "blahblah<br />
<pre><code><br />
blahblah<br />
blahblah<br />
</code></pre>");
巴扎黑

p和br都是标签,没有什么转换的必要,你想要<p>的效果也就是为了好看点,所以直接用css就行了,别折腾PHP了。例如

p br {margin-bottom: 1em;}
p pre br {margin-bottom: 0;}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号