<?php
function removeFirstAndLastPTags($html) {
// 去掉开头的第一个 <p> 标签,但保留内容
$html = preg_replace('/^\s*<p[^>]*>/', '', $html, 1);
// 去掉结尾的最后一个 </p> 标签,但保留内容
$html = preg_replace('/<\/p>\s*$/', '', $html, 1);
return $html;
}
// 示例 HTML
$html = '<p>这是第一个段落。</p><p>这是第二个段落。</p><p>这是第三个段落。</p>';
// 调用函数
$result = removeFirstAndLastPTags($html);
echo $result;
?>
代码说明:
-
去掉开头的
<p>
标签:- 使用
'/^\s*<p[^>]*>/'
匹配开头的<p>
标签。 - 只替换标签,不影响内容。
- 使用
-
去掉结尾的
</p>
标签:- 使用
'/<\/p>\s*$/'
匹配文档结尾的</p>
标签。 - 只替换标签,不影响内容。
- 使用
-
最终结果:
- 第一段落的内容会保留,但开头的
<p>
标签会移除。 - 最后一段落的内容会保留,但结尾的
</p>
标签会移除。
- 第一段落的内容会保留,但开头的
这样即可实现你的需求!
输出结果:
这是第一个段落。<p>这是第二个段落。</p><p>这是第三个段落。