自动添加<p>标签但忽略标头<h *>

时间:2017-02-03 14:17:28

标签: php replace

我正在使用以下代码:

$paragraph = '<p>' . str_replace("\n\n", "</p>\n<p>", $text) . '</p>';
$paragraph = str_replace("<p><h1>", "<h1>", $paragraph); 
$paragraph = str_replace("</h1></p>", "</h1>", $paragraph); 
$paragraph = str_replace("<p><h2>", "<h2>", $paragraph); 
$paragraph = str_replace("</h2></p>", "</h2>", $paragraph); 

但它看起来并不优雅!

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

只需使用数组作为str_replace的参数

$paragraph=str_replace(array("\n\n","<p><hl>","</h1></p>","<p><h2>","</h2></p>"), array("</p>\n<p>","<h1>","</h1>","<h2>","</h2>"), $text) ;

你可以在这里看到一个例子

http://php.net/manual/en/function.str-replace.php

检查示例#1

无论如何,如果我明白你在尝试什么...“每个2行馈送改变

除非下一个文件是或”

然后我会将其更改为

$paragraph="<p>".str_replace("\n\n", "</p>\n<p>", $text)."</p>" ;

$paragraph=str_replace(array("<p><hl>","</h1></p>","<p><h2>","</h2></p>"), array("<h1>","</h1>","<h2>","</h2>"), $paragraph) ;

第一行删除

的双行换行,第二行将删除所有

,其中标题h1或h2