删除之间以及使用php的所有内容

时间:2018-10-23 17:48:38

标签: php html regex html5

我整天都在工作,无法弄清楚! 我有以下代码:

<?php echo $_product->getCustomProductInfo();?>
                                <?php if (!(trim($_product->gettempven()) =="" || trim($_product->gettempven()) =="None")){?>
                                <address style="position: absolute; right: 40px; top: 5px;">
                                    <a class="aw-widget-legal" href="https://www.accuweather.com/en/id/semaya/<?php echo $this->htmlEscape($_product->getData('tempven'));?>/weather-forecast/<?php echo $this->htmlEscape($_product->getData('tempven'));?>">
                                        <!--
                                        By accessing and/or using this code snippet, you agree to AccuWeather’s terms and conditions (in English) which can be found at https://www.accuweather.com/en/free-weather-widgets/terms and AccuWeather’s Privacy Statement (in English) which can be found at https://www.accuweather.com/en/privacy.
                                        -->
                                    </a>
                                    <div id="awcc1494497543780" class="aw-widget-current" style="width: 60px;" data-locationkey="<?php echo $this->htmlEscape($_product->getData('tempven'));?>" data-unit="c" data-language="en-us" data-useip="false" data-uid="awcc1494497543780">&nbsp;</div>
                                    <script type="text/javascript" src="https://oap.accuweather.com/launch.js"></script>
                                </address>
                                <?php } ?>

这将从Mangento 1后端获取一些信息,该信息如下:

<table style="width: 900px; height: 156px;">
<tbody>
<tr>
<td><span style="color: #37454d;"><strong>Resort Name:</strong></span></td>
<td style="text-align: left;"><span style="color: #37454d;">explora Valle 
Sagrado, Peru</span></td>
</tr>
<tr>
<td><span style="color: #37454d;"><strong>Country Name:</strong></span></td>
<td><span style="color: #37454d; font-family: arial, helvetica, sans-serif; 
font-size: 13px; font-style: normal; font-variant-ligatures: normal; font- 
variant-caps: normal; font-weight: normal; letter-spacing: normal; text- 
align: left; text-indent: 0px; text-transform: none; white-space: normal; 
word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: 
#ffffff; text-decoration-style: initial; text-decoration-color: initial; 
float: none; display: inline !important;">Peru</span></td>
</tr>
<tr>
<td><span style="color: #37454d;"><strong>Resort Address:</strong></span> 
</td>
<td>
<div class="is-hidden-mobile blEntry address ui_link " data-popover="small" 
data-position="below" data-element=".content" data- 
options="closeOnMouseAway" data-maxwidth="300" data-mapfilters=""> 
<span>Unnamed Rd Urquillos, Peru</span></div>
</td>
</tr>
<tr>
<td><span style="color: #37454d;"><strong>Website:</strong></span></td>
<td>
<p><span style="color: #37454d;">https://www.explora.com/hotels-and- 
travesias/sacred-valley-peru/</span></p>
</td>
</tr>
<tr>
<td><span style="color: #37454d;"><strong>Phone:</strong></span></td>
<td><span style="color: #37454d;">+56 2 2395 2580</span></td>
</tr>
</tbody>
</table>
<p><iframe style="border:0" src="https://www.google.com/maps/embed? 
pb=!1m14!1m8!1m3!1d15528.573314149919!2d-72.0483157!3d- 
13.341359!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x1a052e519e34e771!
2sExplora+Valle+Sagrado!5e0!3m2!1sen!2sjp!4v1531275200849" height="450" 
width="600"></iframe></p>

我想要实现的是删除标记之间(包括标记)的所有内容。

有没有办法做到这一点?

非常感谢您的帮助。

谢谢:)

2 个答案:

答案 0 :(得分:1)

不建议您使用正则表达式解析html,因为html标记可能具有多层嵌套,这可能会给您带来意想不到的结果。

但是,以防万一,您正在将其作为一种快速技巧,并且不打算长期使用此解决方案,可以使用此正则表达式。

(?s)<table.*?<\/table>

演示在这里, https://regex101.com/r/XsnZiC/1

这是您可以用来实现此目的的php代码,

$table_str="<h1>my header</h1><table aa=bb>dsfsfd</table><p>hello para</p>";
$table_str = preg_replace("/(?s)<table.*?<\/table>/", "", $table_str);
echo $table_str;

让我知道您是否遇到任何问题。

答案 1 :(得分:0)

如果您确定只有一个\<table\>元素,则可以简单地匹配:

\<table[\s\S]+?\</table\>

并替换为empty string

regex只是从匹配'<table'开始,然后继续匹配直到'</table>'的所有内容。

替换后,您将在最后一个'<p>'中拥有内容。