PowerCMS
Smarty-Tricks
»String-ModifikatorenHier sind Beispiele zu finden, wie man Strings über PHP Funktionen als Modifikator manipuliert.
Wenn Inhalte aus anderen Anwendungen stammen, können diese HTML - Tags enthalten und somit möglicherweise das Layout eines Designs zerstören.
Beispiel:
Die Variable test enthält folgenden Wert:
Der Einsatz erfolgt dann so:
Die Ausgabe erfolgt nun so:
Es wurde die PHP Funktion strip_tags verwendet.
Diese PHP Funktion wandelt folgende Zeichen um:
'&' (Ampersand/kaufmännisches Und) wird zu '&'.
'"' (doppeltes Anführungszeichen) wird zu '"',ist.
''' (einfaches Anführungszeichen) wird nur zu ''',
'<' (kleiner als) wird zu '<'
'>' (größer als) wird zu '>'
Diese Zeichen haben manchmal Auswirkungen auf die Kode - Ausführung bei Smarty.
Und deswegen ist es manchmal erwünscht die Umwandlung vorzunehmen.
Die Variable test hat folgenden Wert:
Der Einsatz erfolgt dann so:
Die Ausgabe erfolgt nun so:
In der Ansicht ist es aber so:
Häufig geht es darum Leerzeichen zu entfernen.
Dazu stellt PHP die Funktionen
rtrim - entfernt Leerzeichen von Rechts
ltrim - entfernt Leerzeichen von Links
zur Verfügung.
Im Test müssen wir nun 2 Variable verwenden um einen Erfolg sichtbar zu machen.
ende enthält nur das Zeichen !
test enthält:
Einsatz:
{$test|rtrim}{$ende}
Ausgabe nun:
Was den Erfolg beweist.
Wird ltrim eingesetzt dann werden nur die Leerzeichen links entfernt.
Mit
werden in einem Rutsch erst die rechten und dann die linken Leerzeichen entfernt.
Einfacher geht es aber wenn man schlicht trim einsetzt, da werden die Leerzeichen rechts und links entfernt.
Dazu wird ltrim und rtrim eingesetzt.
Die Variable test hat folgenden Inhalt:
Die ' dienen nur der Verdeutlichung.
Es sollen die Leerzeichen links und die Unterstriche rechts entfernt werden.
Einsatz wie folgt:
Ausgabe:
Man kann Modifikatoren fast beliebig kombineren - sie werden von links nach rechts abgearbeitet.
Das ist nicht unwichtig , denn eine falsche Folge ergibt ein unerwünschtes Ergebnis.
Dazu verwenden wir die PHP - Funktion strrev.
Die Variable test enthält:
Der Einsatz erfolgt so:
Die Ausgabe sieht dann so aus:
Dazu verwenden wir die PHP Funktion strtolower.
Die Variable test enthält:
Der Einsatz erfolgt so:
Die Ausgabe erfolgt nun so:
Sind aber nun deutsche Sonderlaute enthalten wie ÜÖÄß dann ergibt das Kraut und Rüben.
Dann sollte man immer die PHP - Funktion htmlentities verwenden und zwar zuerst.
Die Variable test enthält :
Die Sonderlaute werden ohne htmlentities nicht korrekt ausgegeben.
Mit htmlentities sieht der Einsatz so aus:
und die Ausgabe ist korrekt.
Das funktioniert genau so wie bei der Sache mit den Kleinbuchstaben, aber es wird statt strtolower die PHP Funktion strtoupper eingesetzt.
Bei Problemen mit Sonderlauten bitte die Abschnitte vorher durchlesen - es wird hier nicht mehr wiederholt.
Manchmal hätte man gerne sichergestellt, das der erste Buchstabe im Satz groß geschrieben wird.
Das macht man mit der PHP Funktion ucfirst.
Die Variable test hat folgenden Wert:
Der Einsatz:
Die Ausgabe:
Manche mögens so, die PHP Funktion ucwords erledigt es.
Die Variable test hat folgenden Wert:
Der Einsatz:
Die Ausgabe:
Das kommt häufiger vor als man denkt - ma möchte nur einen Auszug aus einer Variablen anzeigen.
Die Variable test hat folgenden Wert:
Wir wollen nur das ist ausgeben, das ist die Poisition 5 und die Zeichenlänge ist 3.
Da PHP wie andere Programmiersprachen auch in dem Fall mit 0 anfangen zu zählen erfolgt der Einsatz so:
Die Ausgabe ist wie erwartet:
Man kann natürlich einen Text ein Zeichen wiederholt ausgeben in dem man die Varibale mehrfach angibt.
Es geht aber auch bequemer.
Die Variable test hat folgenden Wert:
Wir wollen den Text 4 mal ausgeben.
Der Einsatz:
Die Ausgabe:
Das ist einfach mit der PHP Funktion bin2hex zu machen.
Die Variable test hat folgenden Wert:
Einsatz wie folgt:
Ausgabe erfolgt so:
Es wird die PHP Funktion str_pad eingesetzt.
Die Variable test hat folgenden Wert:
Es soll auf 30 Anschläge mit dem Unterstrich verlängert werden.
Einsatz:
Ausgabe:
Wir verwenden die PHP Funktion wordrwap.
Die Variable test hat folgenden Wert:
Der Einsatz:
{$test|wordwrap:20:"<br />\n"}
Die Ausgabe:
Letzte Änderung auf dieser Seite am: 08.02.2008 18:30:42
Vorherige Seite:
Smarty-Tricks
| Nächste Seite:
Besondere Modifikatoren