Sie sind hier:  LinkpfeilPowerCMS LinkpfeilSmarty-Tricks »String-Modifikatoren


Stringmanipulationen

Hier sind Beispiele zu finden, wie man Strings über PHP Funktionen als Modifikator manipuliert.

HTML - Tags entfernen

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:

<p>Das ist ein Test.</p>

Der Einsatz erfolgt dann so:

{$test|strip_tags}

Die Ausgabe erfolgt nun so:

Das ist ein Test.

Es wurde die PHP Funktion strip_tags verwendet.

htmlspecialchars

Diese PHP Funktion wandelt folgende Zeichen um:

'&' (Ampersand/kaufmännisches Und) wird zu '&amp;'.

'"' (doppeltes Anführungszeichen) wird zu '&quot;',ist.

''' (einfaches Anführungszeichen) wird nur zu '&#039;',

'<' (kleiner als) wird zu '&lt;'

'>' (größer als) wird zu '&gt;'

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:

& <Das ist ein Test.>

Der Einsatz erfolgt dann so:

{$test|htmlspecialchars}

Die Ausgabe erfolgt nun so:

&amp; &lt;Das ist ein Test.&gt;

In der Ansicht ist es aber so:

& <Das ist ein Test.>

Leerzeichen entfernen

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:

Das ist ein Test. -bis vor dem Strich Leerzeichen

Einsatz:

{$test|rtrim}{$ende}

Ausgabe nun:

Das ist ein Test.!

Was den Erfolg beweist.

Wird ltrim eingesetzt dann werden nur die Leerzeichen links entfernt.

Kombination

Mit

{$test|rtrim|ltrim}

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.

Unterschiedliche Zeichen links und rechts entfernen

Dazu wird ltrim und rtrim eingesetzt.

Die Variable test hat folgenden Inhalt:

' Das ist ein Test.____'

Die ' dienen nur der Verdeutlichung.

Es sollen die Leerzeichen links und die Unterstriche rechts entfernt werden.

Einsatz wie folgt:

{$test|ltrim|rtrim:_}

Ausgabe:

Das ist ein Test.

Kombinationen

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.

Zeichen umkehren

Dazu verwenden wir die PHP - Funktion strrev.

Die Variable test enthält:

Das ist ein Test.

Der Einsatz erfolgt so:

{$test|strrev}

Die Ausgabe sieht dann so aus:

.tseT nie tsi saD

Alles in Kleinschrift

Dazu verwenden wir die PHP Funktion strtolower.

Die Variable test enthält:

DAS IST EIN TEST.

Der Einsatz erfolgt so:

{$test|strtolower}

Die Ausgabe erfolgt nun so:

das ist ein test.

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 :

DAS IST EIN TEST.ÜÖÄß

Die Sonderlaute werden ohne htmlentities nicht korrekt ausgegeben.

Mit htmlentities sieht der Einsatz so aus:

{$test|htmlentities|strtolower}

und die Ausgabe ist korrekt.

Alles in Großbuchstaben

Das funktioniert genau so wie bei der Sache mit den Kleinbuchstaben, aber es wird statt strtolower die PHP Funktion strtoupper eingesetzt.

Sonderlaute

Bei Problemen mit Sonderlauten bitte die Abschnitte vorher durchlesen - es wird hier nicht mehr wiederholt.

Erster Buchstabe im Satz in Großschrift

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:

das ist ein Test.

Der Einsatz:

{$test|ucfirst}

Die Ausgabe:

Das ist ein Test.

Alle ersten Buchstaben eines Wortes in Großschrift

Manche mögens so, die PHP Funktion ucwords erledigt es.

Die Variable test hat folgenden Wert:

das ist ein Test.

Der Einsatz:

{$test|ucwords}

Die Ausgabe:

Das Ist Ein Test.

Nur eine Textauszug verwenden

Das kommt häufiger vor als man denkt - ma möchte nur einen Auszug aus einer Variablen anzeigen.

Die Variable test hat folgenden Wert:

Das ist ein Test.

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:

{$test|substr:4:3}

Die Ausgabe ist wie erwartet:

ist

Texte wiederholt ausgeben

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:

Das ist ein Test.

Wir wollen den Text 4 mal ausgeben.

Der Einsatz:

{$test|str_repeat:4}

Die Ausgabe:

Das ist ein Test.Das ist ein Test.Das ist ein Test.Das ist ein Test.

Inhalte hexadezimal ausgeben

Das ist einfach mit der PHP Funktion bin2hex zu machen.

Die Variable test hat folgenden Wert:

Das ist ein Test.

Einsatz wie folgt:

{$test|bin2hex}

Ausgabe erfolgt so:

446173206973742065696e20546573742e

String verlängern

Es wird die PHP Funktion str_pad eingesetzt.

Die Variable test hat folgenden Wert:

Das ist ein Test.

Es soll auf 30 Anschläge mit dem Unterstrich verlängert werden.

Einsatz:

{$test|str_pad:30:_}

Ausgabe:

Das ist ein Test______________

Wordwrap eines Textes

Wir verwenden die PHP Funktion wordrwap.

Die Variable test hat folgenden Wert:

Der schnelle braune Fuchs sprang über den faulen Hund.

Der Einsatz:

{$test|wordwrap:20:"<br />\n"}

Die Ausgabe:

Der schnelle braune
Fuchs sprang über
den faulen Hund.
 

Letzte Änderung auf dieser Seite am: 08.02.2008 18:30:42


Vorherige Seite: LinkpfeilSmarty-Tricks  | Nächste Seite: LinkpfeilBesondere Modifikatoren