如何使用php </p>从HTML中删除<p>标签及其内容

时间:2012-08-26 14:34:34

标签: php html

以下是我需要从

中删除<p>代码的文字
<p> Addiction, stress and subjective wellbeing</p> 
<p> The need and significance of traditional shop lot pavements in the context of town conservation in Malaysia</p> 
<p> The role of wage and benefit in engaging employee commitment</p>

我试过这个

$title= preg_replace('#<p>(.*?)</p>#', '', $title['result']);**

但仍然会获得<p>标签,任何想法?

7 个答案:

答案 0 :(得分:18)

您必须使用此正则表达式来捕获<p>标记及其所有内容:

'/<p\b[^>]*>(.*?)<\/p>/i'

用于捕获和删除<p>标记及其所有内容的工作示例:

$title = "<div>Text to keep<p class='classExample'>Text to remove</p></div>";
$result = preg_replace('/<p\b[^>]*>(.*?)<\/p>/i', '', $title);
echo $result;

Please see live demo on Codepad

如果您想使用正则表达式来解析HTML - 那么您将无法执行此操作。

在此处详细了解您的问题:How do you parse and process HTML/XML in PHP?

答案 1 :(得分:5)

尝试:

如果您只想删除<p>代码

$html = "
<p> Addiction, stress and subjective wellbeing</p> 
<p> The need and significance of traditional shop lot pavements town</p> 
<p> The role of wage and benefit in engaging employee commitment</p>
";

echo strip_tags($html);

如果您要删除<p>代码及其content

$html = preg_replace('#\<p>[{\w},\s\d"]+\</p>#', "", $html);

答案 2 :(得分:3)

echo "<div id=\"main_content\">" . strip_tags($row[main_content]) . "</div>";

答案 3 :(得分:2)

如果您只需要删除所有标记,请使用strip_tags()

答案 4 :(得分:2)

只是为了删除p标签,你可以这样做

$text=str_ireplace('<p>','',$text);
$text=str_ireplace('</p>','',$text);    

答案 5 :(得分:2)

$text = '<p>Test paragraph.</p> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow p and a tag
echo strip_tags($text, '<p><a>');

答案 6 :(得分:0)

此代码删除了一个p标签:

function parse($html) {
    $dom = new DOMDocument();
    @$dom->loadHTML($html);
    $ps = $dom->getElementsByTagName('p');
    //die('<pre>'.print_r($ps,1).'</pre>');
    if ($ps->length === 1){
        $p = $ps->item(0);
        return $p->nodeValue;
    } else {
        return '';
    }
}