我想编辑我的php模板,但我做不到。我使用Smarty模板引擎。
我默认的php行如下所示:
{$childItem->getLabel()}它确实显示如下HTML:
MY TEXT - MY SUB TEXT我想删除-之前的所有内容。所以它只显示MY SUB TEXT部件。
我尝试过这样做,但这不起作用,因为这会移除符号后面的内容:
{$childItem->getLabel()|stristr:'-' : true}我怎么才能解决这个问题?
发布于 2016-06-22 10:27:49
传递给$before_needle,的附加"true“参数引用stristr,因此您将在连字符之前返回字符串的部分。不幸的是,删除它将使您返回字符串在之后的部分,并包括的连字符,即"- MY SUB“。
一个干净的解决方案是使用explode,然后使用结果数组的第二个元素,如下所示:
{assign var="splitItem" value=" - "|explode:$childItem->getLabel()}
{$splitItem[1]}发布于 2016-06-22 10:27:30
关于斯特拉斯特尔的php文档
如果为TRUE,stristr()将返回第一次出现针(不包括针)之前的大海捞针部分。
但是,由于函数的正常行为是包括针和后面的文本,而这并不完全是您想要的,所以您还必须用替换来删除它,所以:
{$childItem->getLabel()|stristr:'-'|replace:'-':''}https://stackoverflow.com/questions/37964861
复制相似问题