Smarty erhält Teilstring einer Var mit Stropes als Start und Strale als Ende

8

Ich habe Formatierungsvariablen in Smarty. Ich habe mich gefragt, wie es am besten geht. Im Grunde habe ich eine Zeichenfolge "ABC | DEFGH" Ich möchte Smarty die Teilzeichenfolge von "DEFGH" erhalten Wie würde ich das tun?

%Vor%

funktioniert nicht

    
kjy112 08.12.2010, 16:46
quelle

4 Antworten

25

Habe das gerade gelöst, ohne Var in PHP zu setzen und die eingebauten Wrapper zu benutzen.

Angenommen, dass: $ var="ABC | DEFGH";

%Vor%

Dies wird gedruckt:

  • ABC | DEFGH
  • ABC
  • DEFGH
  •     
    Jimby 14.12.2010, 19:09
    quelle
    5

    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 :

    %Vor%

    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

        
    Marcin Nabiałek 30.07.2014 06:18
    quelle
    4

    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.

        
    profitphp 08.12.2010 16:52
    quelle
    0

    Wenn Sie wie Jimby verwenden:

    %Vor%

    Ich füge Klammern oder runde Klammern hinzu, damit es funktioniert.

    %Vor%     
    inMILD 19.09.2013 08:19
    quelle

    Tags und Links