php线Smarty模板引擎反向stristr

时间:2016-06-22 10:07:18

标签: php smarty

我想编辑我的php模板,但我无法正确使用它。 我使用Smarty模板引擎。

我的默认php行看起来像这样:

{$childItem->getLabel()}

这会显示如下HTML:

MY TEXT - MY SUB TEXT

我想删除-之前的所有内容。因此它只显示MY SUB TEXT部分。

我尝试了这个,但这不起作用,因为这会删除符号后面的内容:

{$childItem->getLabel()|stristr:'-' : true}

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

至于stristr的php文档:

  

如果为TRUE,stristr()会在第一个之前返回haystack的一部分   针的出现(不包括针)。

但是,由于该功能的正常行为是将针和文字包括在其后并且不完全符合您的要求,您还必须使用 replace <删除它/ em>,所以:

{$childItem->getLabel()|stristr:'-'|replace:'-':''}

答案 1 :(得分:1)

您传递给stristr的附加“true”参数是指 $ before_needle ,因此您将在连字符之前返回字符串部分。不幸的是,删除它会让你在之后返回字符串部分,包括连字符,即“ - MY SUB TEXT”。

一个干净的解决方案是使用explode,然后使用结果数组的第二个元素,如下所示:

{assign var="splitItem" value=" - "|explode:$childItem->getLabel()}
{$splitItem[1]}