php行Smarty模板引擎反向strist
php line Smarty template engine reverse stristr
我想编辑我的 php 模板,但我做不对。
我用的是Smarty模板引擎。
我的默认 php 行如下所示:
{$childItem->getLabel()}
确实会像这样显示 HTML:
MY TEXT - MY SUB TEXT
我想删除 -
之前的所有内容。这样它只显示 MY SUB TEXT
部分。
我试过了,但那行不通,因为那会删除符号后面的内容:
{$childItem->getLabel()|stristr:'-' : true}
我该如何解决这个问题?
至于 php stristr 的文档:
If TRUE, stristr() returns the part of the haystack before the first
occurrence of the needle (excluding needle).
但是,由于该函数的正常行为是包含针及其后的文本,而这并不是您想要的,您还必须使用 replace[=18 将其删除=],所以:
{$childItem->getLabel()|stristr:'-'|replace:'-':''}
您传递给 stristr
的附加 "true" 参数指的是 $before_needle,因此您将取回该部分连字符前的字符串。不幸的是,删除它将使您返回 之后的字符串部分并包括 连字符,即“- MY SUB TEXT”。
一个干净的解决方案是使用 explode
,然后使用结果数组的第二个元素,如下所示:
{assign var="splitItem" value=" - "|explode:$childItem->getLabel()}
{$splitItem[1]}
我想编辑我的 php 模板,但我做不对。 我用的是Smarty模板引擎。
我的默认 php 行如下所示:
{$childItem->getLabel()}
确实会像这样显示 HTML:
MY TEXT - MY SUB TEXT
我想删除 -
之前的所有内容。这样它只显示 MY SUB TEXT
部分。
我试过了,但那行不通,因为那会删除符号后面的内容:
{$childItem->getLabel()|stristr:'-' : true}
我该如何解决这个问题?
至于 php stristr 的文档:
If TRUE, stristr() returns the part of the haystack before the first occurrence of the needle (excluding needle).
但是,由于该函数的正常行为是包含针及其后的文本,而这并不是您想要的,您还必须使用 replace[=18 将其删除=],所以:
{$childItem->getLabel()|stristr:'-'|replace:'-':''}
您传递给 stristr
的附加 "true" 参数指的是 $before_needle,因此您将取回该部分连字符前的字符串。不幸的是,删除它将使您返回 之后的字符串部分并包括 连字符,即“- MY SUB TEXT”。
一个干净的解决方案是使用 explode
,然后使用结果数组的第二个元素,如下所示:
{assign var="splitItem" value=" - "|explode:$childItem->getLabel()}
{$splitItem[1]}