在smarty中添加strip_tags异常

时间:2014-02-19 12:16:49

标签: smarty

我正在尝试为smarty添加strip_tags异常但由于某种原因它无法正常工作。下面是我的代码。有人可以帮我弄清楚我做错了什么。

<td class="olotd4 tooltip2">
<span>{$customer_work_orders_result
[i].WORK_ORDER_DESCRIPTION|strip_tags:"<a><del><em><strong><blockquote>"|stripslashes}</span>
{$customer_work_orders_result[i].WORK_ORDER_SCOPE}</td>

它正在工作但剥离一切。

提前致谢..

1 个答案:

答案 0 :(得分:2)

Smarty strip_tags实现不允许这样做。但是,您可以编写自己的修饰符:

将其保存为smarty / plugins / modifier.strip_tags_exclude.php(或在您的自定义插件文件夹中)

function smarty_modifier_strip_tags_exclude()
{

    $params=func_get_args();

    if (!isset($params[1])) {
        $params[1] = true;
    }
    if ($params[1] === true) {
        return preg_replace('!<[^>]*?>!', ' ', $params[0]);
    } else {
        if (is_string($params[1]))
        {
            $allowable_tags = strtr($params[1],'[]','<>');
        }


        return strip_tags($params[0],$allowable_tags);
    }
}

然后你可以这样使用它:

{$variable|strip_tags_exclude:'<a><p><ul><li>'}

或者(某些编辑可能会感到困惑并认为你正在打开标签):

{$variable|strip_tags_exclude:'[a][p][ul][li]'}