假设我有一些$content
喜欢这个
<div class="span2">
<p><br />
Here goes some other content …<br />
More content …
<br /></p>
</div>
我只想在打开<br />
代码后和结束<p>
代码之前删除<p>
代码。
这是我到目前为止所做的,但它不起作用......
preg_replace('/<div[^>]><p><br />(.+)<br /><\/p><\/div>/i', '$1', $content);
答案 0 :(得分:0)
preg_replace('/<div[^>]*><p><br\s\/>(.+)<br\s/><\/p><\/div>/i', '$1', $content);
我不是一个php程序员,但也许这个regexp-part现在是正确的。
答案 1 :(得分:0)
您不会使用http://php.net/manual/en/function.strip-tags.php的任何理由?您可以指定单独保留<p>
和<div>
个标记。只有在你的情况总是如此简单的情况下才有效。如果你想让任何<br />
单独留在中间,那么这可能并不理想。
答案 2 :(得分:0)
这对你有用吗?
function strpbrp($content){
if(preg_match('/<div[^>]*>/', $content, $m)){
return "$m[0]<p>".preg_replace('/(^<div[^>]*>\s*<p>\s*<br\s*\/>)|(<br\s*\/>\s*<\/p>\s*<\/div>$)/', '', $content).'</p></div>';
}
else{
return $content;
}
}