Einige Informationen über Smarty 3, falls jemand dasselbe in Smarty 3 und nicht in Smarty 2 erreichen möchte:
Als erstes müssen Sie Klammern hinzufügen, damit es funktioniert. substr:$bar_at+1
funktioniert nicht, aber substr:($bar_at+1)
funktioniert.
Aber in der Tat können Sie einfachere Syntax verwenden:
%Vor% Dies wird DEFGH
mit Leerzeichen am Anfang geben (vorher und |
sind Leerzeichen innerhalb von var in Ihrer Frage und in meinem Beispiel) und wenn Sie eine Zeichenfolge ohne Leerzeichen erhalten möchten, sollten Sie in diesem Fall% co_de verwenden % anstelle von +2
:
Die obigen wurden in Smarty +1
getestet.
Sie sollten auch wissen, dass Sie in früheren Versionen (vor Smarty 3.1), wenn Sie in Ihren Zeichenfolgen UTF-8 Zeichen haben, lieber 3.1.19
functions verwenden sollten.
Ab Smarty 3.1, falls mb_
Erweiterung installiert ist, verwendet Smarty automatisch mbstring
Funktionen in diesem Fall, so dass es kein Problem mit utf-8 Zeichen gibt.
Sie können mehr über Codierung Smarty utf-8
Diese Funktionen existieren nicht in Smarty. Sie müssen es in PHP aufteilen, bevor Sie es an die Vorlage senden. Oder Sie könnten Ihr eigenes Split-Funktion Smarty-Plugin schreiben. Oder verwende {php} -Tags in der Vorlage, aber ich würde diese Lösung vermeiden, da sie gegen den "Geist" und den Zweck der Verwendung von Smarty, Trennung von Präsentation und Logik, etc usw. ist.