PHP 聪明替换

PHP Smarty replace

我使用 PHP Smarty,现在我想以更正确的方式使用 replace:

我想删除整个 <div class="news-text"></div> 及其内部内容。

我怎样才能做到这一点?

我的代码目前看起来像这样,但它很讨厌,因为它只隐藏了内容:

{$announcement.text|replace:'<div class="news-text"> ':'<div style="display:none;" class="news-text">'}

Smarty 无法以可靠的方式做到这一点。您可以尝试创建一个自定义插件来操作 html 或更好,在将变量发送到 Smarty 之前修改变量的内容。

您当前的解决方案也是不必要的,并且可能容易出错。您可以使用简单的 css 来完成,无需替换;即:

html:

<div class="no_news_text">
{$announcement.text}
</div>

css:

.no_news_text .news-text{display:none !important;}