使用 php 从字符串中删除不需要的段落
Remove unwanted paragraphs from string using php
如何在以下情况下使用 pregmatch 删除不需要的
标签。我写了 pregmatch 但它在某些情况下不起作用。这是我的字符串
<?php
$str='<div class="borderdummydiv" style="padding: 10px;">
<div class="showcolsec" style="line-height: normal;">
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><strong>Email Template for Testing - 01:</strong></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;"><br data-mce-bogus="1"></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;">Email body for testing the autoresponder mails and email blasts scheduling functionality<br data-mce-bogus="1"></p>
<p></p>
<p><br></p>
<p></br></p>
<p> </br></p>
<p> <br class="ddd"></p>
<p class="ddd"></p>
<p class="ddd"><br class="ddd"></p>
<p class="ddd"></br></p>
<p class="ddd"> </br></p>
<p class="ddd"> <br class="ddd"></p>
</div>
</div>';
//echo $str;
echo preg_replace("/<p[^>]*>[\s| |<\br [^>]*>|<\/br>]*<\/p>/", '', $str);
?>
以下是不需要的段落。那么我怎样才能从 string
中删除
<p></p>
<p><br></p>
<p></br></p>
<p> </br></p>
<p> <br class="ddd"></p>
<p class="ddd"></p>
<p class="ddd"><br class="ddd"></p>
<p class="ddd"></br></p>
<p class="ddd"> </br></p>
<p class="ddd"> <br class="ddd"></p>
在 <\br [^>]*> 部分的正则表达式中,您使用反斜杠对 "b" 进行了转义。
这样你就把它变成了退格键。我想你不想要那个。
尝试删除反斜杠,然后使其成为:
echo preg_replace("/<p[^>]*>[\s| |<br [^>]*>|<\/br>]*<\/p>/", '', $str);
编辑:(因为发问者提供了新信息)
好的,用这个就可以了:
echo preg_replace("/<p[^>]*>(\s| |<br [^>]*>|<\/?br>)*<\/p>/", '', $str);
必须用圆括号替换方括号,并使 "br" 之前的斜线可选。
这是我的代码
$str='<div class="borderdummydiv" style="padding: 10px;">
<div class="showcolsec" style="line-height: normal;">
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><strong>Email Template for Testing - 01:</strong></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><br data-mce-bogus="1"></p>
<p></p>
<p><br></p>
<p></br></p>
<p> </br></p>
<p> <br class="ddd"></p>
<p class="ddd"></p>
<p class="ddd"><br class="ddd"></p>
<p class="ddd"></br></p>
<p class="ddd"> </br></p>
<p class="ddd"> <br class="ddd"></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;">Email body for testing the autoresponder mails and email blasts scheduling functionality<br data-mce-bogus="1"></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><strong>Email Template for Testing - 01:</strong></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;"><br data-mce-bogus="1"></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;">Email body for testing the autoresponder mails and email blasts scheduling functionality<br data-mce-bogus="1"></p>
</div>
</div>';
//echo $str;
echo preg_replace("/<p[^>]*>[\s| |<br [^>]*>|<\/br>]*<\/p>/", '', $str);
这是输出 html
<div class="borderdummydiv" style="padding: 10px;">
<div class="showcolsec" style="line-height: normal;">
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><strong>Email Template for Testing - 01:</strong></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><br data-mce-bogus="1"></p>
<p></p>
</p>
<p>
<p>
<p> <br class="ddd"></p>
<p class="ddd"></p>
<p class="ddd"><br class="ddd"></p>
<p class="ddd">
<p class="ddd">
<p class="ddd"> <br class="ddd"></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;">Email body for testing the autoresponder mails and email blasts scheduling functionality<br data-mce-bogus="1"></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><strong>Email Template for Testing - 01:</strong></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;"><br data-mce-bogus="1"></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;">Email body for testing the autoresponder mails and email blasts scheduling functionality<br data-mce-bogus="1"></p>
</div>
</div>
在浏览器中显示为这样
Email Template for Testing - 01:
Email body for testing the autoresponder mails and email blasts scheduling functionality
Email Template for Testing - 01:
Email body for testing the autoresponder mails and email blasts scheduling functionality
如何在以下情况下使用 pregmatch 删除不需要的
标签。我写了 pregmatch 但它在某些情况下不起作用。这是我的字符串
<?php
$str='<div class="borderdummydiv" style="padding: 10px;">
<div class="showcolsec" style="line-height: normal;">
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><strong>Email Template for Testing - 01:</strong></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;"><br data-mce-bogus="1"></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;">Email body for testing the autoresponder mails and email blasts scheduling functionality<br data-mce-bogus="1"></p>
<p></p>
<p><br></p>
<p></br></p>
<p> </br></p>
<p> <br class="ddd"></p>
<p class="ddd"></p>
<p class="ddd"><br class="ddd"></p>
<p class="ddd"></br></p>
<p class="ddd"> </br></p>
<p class="ddd"> <br class="ddd"></p>
</div>
</div>';
//echo $str;
echo preg_replace("/<p[^>]*>[\s| |<\br [^>]*>|<\/br>]*<\/p>/", '', $str);
?>
以下是不需要的段落。那么我怎样才能从 string
中删除<p></p>
<p><br></p>
<p></br></p>
<p> </br></p>
<p> <br class="ddd"></p>
<p class="ddd"></p>
<p class="ddd"><br class="ddd"></p>
<p class="ddd"></br></p>
<p class="ddd"> </br></p>
<p class="ddd"> <br class="ddd"></p>
在 <\br [^>]*> 部分的正则表达式中,您使用反斜杠对 "b" 进行了转义。 这样你就把它变成了退格键。我想你不想要那个。
尝试删除反斜杠,然后使其成为:
echo preg_replace("/<p[^>]*>[\s| |<br [^>]*>|<\/br>]*<\/p>/", '', $str);
编辑:(因为发问者提供了新信息) 好的,用这个就可以了:
echo preg_replace("/<p[^>]*>(\s| |<br [^>]*>|<\/?br>)*<\/p>/", '', $str);
必须用圆括号替换方括号,并使 "br" 之前的斜线可选。
这是我的代码
$str='<div class="borderdummydiv" style="padding: 10px;">
<div class="showcolsec" style="line-height: normal;">
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><strong>Email Template for Testing - 01:</strong></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><br data-mce-bogus="1"></p>
<p></p>
<p><br></p>
<p></br></p>
<p> </br></p>
<p> <br class="ddd"></p>
<p class="ddd"></p>
<p class="ddd"><br class="ddd"></p>
<p class="ddd"></br></p>
<p class="ddd"> </br></p>
<p class="ddd"> <br class="ddd"></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;">Email body for testing the autoresponder mails and email blasts scheduling functionality<br data-mce-bogus="1"></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><strong>Email Template for Testing - 01:</strong></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;"><br data-mce-bogus="1"></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;">Email body for testing the autoresponder mails and email blasts scheduling functionality<br data-mce-bogus="1"></p>
</div>
</div>';
//echo $str;
echo preg_replace("/<p[^>]*>[\s| |<br [^>]*>|<\/br>]*<\/p>/", '', $str);
这是输出 html
<div class="borderdummydiv" style="padding: 10px;">
<div class="showcolsec" style="line-height: normal;">
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><strong>Email Template for Testing - 01:</strong></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><br data-mce-bogus="1"></p>
<p></p>
</p>
<p>
<p>
<p> <br class="ddd"></p>
<p class="ddd"></p>
<p class="ddd"><br class="ddd"></p>
<p class="ddd">
<p class="ddd">
<p class="ddd"> <br class="ddd"></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;">Email body for testing the autoresponder mails and email blasts scheduling functionality<br data-mce-bogus="1"></p>
<p style="font-size: 14px;" data-mce-style="font-size: 14px;"><strong>Email Template for Testing - 01:</strong></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;"><br data-mce-bogus="1"></p><p style="font-size: 14px;" data-mce-style="font-size: 14px;">Email body for testing the autoresponder mails and email blasts scheduling functionality<br data-mce-bogus="1"></p>
</div>
</div>
在浏览器中显示为这样
Email Template for Testing - 01:
Email body for testing the autoresponder mails and email blasts scheduling functionality
Email Template for Testing - 01:
Email body for testing the autoresponder mails and email blasts scheduling functionality