2016-04-14 5 views
-1

Hier ist meine Zeichenfolge durch Komma getrennt (,) $myStr = "One, Two,Three, Four , Five ,Six "SMARTY: Entfernen Sie Leerzeichen am Anfang oder Ende meiner Zeichenfolge in Smarty Vorlage?

Ich bin es {assign var="options" value=","|explode:$myStr}

erfolgreich explodieren kann Aber ich würde auch von jedem String Leerzeichen am Anfang oder am Ende zu entfernen, wie wenn es ausgegeben wird. Mit anderen Worten: Ich bin auf der Suche nach einer SMARTY Funktion, die der integrierten PHP-Funktion trim($mystr) entspricht. PHP trim entfernt die Anfangs- und End-Leerstellen, wenn es vorhanden ist, andernfalls gibt es die tatsächliche Zeichenkette zurück.

{section name=myname loop=$options} 
    {$options[myname]} 
{/section} 

Der obige Code würde Ausgabe:

One 
Two 
Three 
[whitespace]Four[whitespace] 
[whitespace]Five[whitespace] 
Six[whitespace] 

Wie kann ich Leerzeichen trimmen?

+2

Verwenden Sie trim ($ varName). – RJParikh

+2

duplizieren bitte überprüfen: http://stackoverflow.com/questions/1279774/to-strip-whitespaces-inside-a-variable-in-php – RJParikh

+0

Nein. Es ist nicht doppelt. Beides sind verschiedene Fragen. Mein Anliegen ist es, die Leerzeichen nur an den Positionen ** Anfang ** und ** Ende ** zu entfernen. Bei der von Ihnen erwähnten Frage geht es darum, alle Leerzeichen aus einer Zeichenfolge zu entfernen. –

Antwort

4

Es {strip}{/strip} in Smarty ist. Whitespaces werden zwischen diesen Tags entfernt.

{$var|substr:0:-1} würde die Leerzeichen letzte Zeichen in Ihrem Fall entfernen. {$var|substr:1} würde das erste Zeichen aus der Zeichenfolge entfernen.

alle PHP-Funktionen können (mehr unten) als Modifizierungsmittel verwendet werden, und implizit Modifikatoren

kombiniert werden können

von docs{$var|trim} in smarty gleich trim($var) in PHP.

Es gibt einen anderen Weg. Mit {php}{/php} Tags in Smarty in der Lage zu verwenden, PHP eingebaute trim() Funktion, aber das macht keinen Sinn für mich. Warum würdest du die Smarty-Variable sogar zurück auf PHP setzen wollen, wenn sie von PHP eingebunden würde? Unsinn.

+0

Vielen Dank für die Antwort. Aber es werden alle Leerzeichen in der Zeichenfolge entfernt. Ich möchte die Whitespaces onloy von beiden Enden einer Schnur entfernen. –

+0

Überprüfen Sie die bearbeitete Antwort –

+0

Nochmals vielen Dank, aber es wird die ersten und letzten Zeichen aus der Zeichenfolge entfernen, wenn weiße Leerzeichen nicht am Ende dargestellt werden. Ich suche nach einem PHP-Quilten von Trim ($ Mystr).PHP trim entfernt die Anfangs- und End-Whitespaces, wenn diese vorhanden sind. Andernfalls wird die tatsächliche Zeichenfolge zurückgegeben. –

0

Wenn der Leerraum nur Leerzeichen enthält, wie in Leerzeichen, können Sie ihn mit der Funktion trim() (Docs) entfernen. Ersetzen Sie $options[myname] durch trim($options[myname]).

Wenn es die Zeichenfolge "[Leerzeichen]" ist, können Sie preg_replace() (Docs) wie: preg_replace("/[whitespace]/","",$options[myname])

+0

Ich weiß in PHP, dies zu tun. Aber meine Frage bezieht sich auf SMARTY. –