2016-06-22 11 views
0

Ich möchte meine PHP-Vorlage bearbeiten, aber ich kann es nicht richtig machen. Ich verwende die Smarty-Vorlagen-Engine.php line Smarty Vorlage Engine reverse stristr

Meine Standard-PHP-Zeile sieht wie folgt aus:

{$childItem->getLabel()} 

Das HTML tut Display wie folgt aus:

MY TEXT - MY SUB TEXT 

ich alle Inhalte vor dem - entfernen möchten. Damit wird nur der MY SUB TEXT Teil angezeigt.

Ich habe versucht, aber das funktioniert nicht, denn das ist der Inhalt nach dem Schild entfernt:

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

Wie ich dieses Problem beheben?

Antwort

1

die zusätzlichen „true“ Parameter, den Sie stristr vorbei sind beziehen sich auf $ before_needle, so dass Sie vor dem Bindestrich den Teil der Zeichenfolge wieder werden. Wenn Sie das entfernen, erhalten Sie leider den Teil der Zeichenfolge nach und einschließlich den Bindestrich, d. H. "- MEIN SUB TEXT".

wäre eine saubere Lösung zu verwenden explode, und dann das zweite Element des resultierenden Arrays verwenden, wie folgt aus:

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

Wie für PHP-Dokumentation für stristr:

Falls TRUE, stristr() gibt den Teil des Heuhaufen vor dem ersten Auftreten der Nadel (ohne Nadel).

jedoch, wie das normale Verhalten der Funktion, die Nadel und den Text, nachdem sie enthalten ist, und das ist nicht genau das, was Sie wollen, werden Sie es auch mit ersetzen entfernen müssen, so:

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