Latte-Filter
In Templates können wir Funktionen verwenden, die helfen, Daten in die endgültige Form zu ändern oder neu zu formatieren. Wir nennen sie Filter.
capitalize |
Kleinbuchstaben, erster Buchstabe in Wörtern groß |
firstUpper |
wandelt den ersten Buchstaben in einen Großbuchstaben um |
lower |
wandelt in Kleinbuchstaben um |
upper |
wandelt in Großbuchstaben um |
ceil |
rundet eine Zahl auf die angegebene Genauigkeit auf |
floor |
rundet eine Zahl auf die angegebene Genauigkeit ab |
round |
rundet eine Zahl auf die angegebene Genauigkeit |
escapeUrl |
escapet einen Parameter in einer URL |
noescape |
gibt eine Variable ohne Escaping aus |
query |
generiert einen Query-String in einer URL |
Darüber hinaus gibt es Escaping-Filter für HTML (escapeHtml
und escapeHtmlComment
), XML
(escapeXml
), JavaScript (escapeJs
), CSS (escapeCss
) und iCalendar
(escapeICal
), die Latte dank kontextsensitivem Escaping selbst
verwendet und die Sie nicht schreiben müssen.
checkUrl |
bereinigt eine URL-Adresse von gefährlichen Eingaben |
nocheck |
verhindert die automatische Bereinigung einer URL-Adresse |
Latte prüft die Attribute src
und href
automatisch, sodass Sie den Filter checkUrl
fast nie verwenden müssen.
Alle Standardfilter sind für Zeichenketten in UTF-8-Kodierung vorgesehen.
Verwendung
Filter werden nach einem senkrechten Strich geschrieben (ein Leerzeichen davor ist erlaubt):
<h1>{$heading|upper}</h1>
Filter (in älteren Versionen Helfer) können verkettet werden und werden dann in der Reihenfolge von links nach rechts angewendet:
<h1>{$heading|lower|capitalize}</h1>
Parameter werden nach dem Filternamen, getrennt durch Doppelpunkte oder Kommas, angegeben:
<h1>{$heading|truncate:20,''}</h1>
Filter können auch auf einen Ausdruck angewendet werden:
{var $name = ($title|upper) . ($subtitle|lower)}</h1>
Benutzerdefinierte Filter können auf diese Weise registriert werden:
$latte = new Latte\Engine;
$latte->addFilter('shortify', fn(string $s, int $len = 10) => mb_substr($s, 0, $len));
Im Template wird er dann so aufgerufen:
<p>{$text|shortify}</p>
<p>{$text|shortify:100}</p>
Filter
batch (int $length, mixed $item): array
Ein Filter, der die Ausgabe linearer Daten in Tabellenform vereinfacht. Gibt ein Array von Arrays mit der angegebenen Anzahl von Elementen zurück. Wenn Sie einen zweiten Parameter angeben, wird dieser verwendet, um fehlende Elemente in der letzten Zeile zu ergänzen.
{var $items = ['a', 'b', 'c', 'd', 'e']}
<table>
{foreach ($items|batch: 3, 'No item') as $row}
<tr>
{foreach $row as $column}
<td>{$column}</td>
{/foreach}
</tr>
{/foreach}
</table>
Gibt aus:
<table>
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
</tr>
<tr>
<td>d</td>
<td>e</td>
<td>No item</td>
</tr>
</table>
Siehe auch group und der Tag iterateWhile.
breakLines
Fügt vor jedem Zeilenumbruchzeichen das HTML-Tag <br>
ein.
{var $s = "Text & with \n newline"}
{$s|breakLines} {* gibt aus "Text & with <br>\n newline" *}
bytes (int $precision=2)
Formatiert die Größe in Bytes in eine für Menschen lesbare Form. Wenn die Spracheinstellung gesetzt ist, werden die entsprechenden Dezimal- und Tausendertrennzeichen verwendet.
{$size|bytes} 0 B, 1.25 GB, …
{$size|bytes:0} 10 B, 1 GB, …
ceil (int $precision=0)
Rundet eine Zahl auf die angegebene Genauigkeit auf.
{=3.4|ceil} {* gibt 4 aus *}
{=135.22|ceil:1} {* gibt 135.3 aus *}
{=135.22|ceil:3} {* gibt 135.22 aus *}
capitalize
Wörter beginnen mit Großbuchstaben, alle übrigen Zeichen sind Kleinbuchstaben. Erfordert die PHP-Erweiterung
mbstring
.
{='i like LATTE'|capitalize} {* gibt 'I Like Latte' aus *}
Siehe auch firstUpper, lower, upper.
checkUrl
Erzwingt die Bereinigung einer URL-Adresse. Überprüft, ob die Variable eine Web-URL enthält (d. h. das HTTP/HTTPS-Protokoll) und verhindert die Ausgabe von Links, die ein Sicherheitsrisiko darstellen können.
{var $link = 'javascript:window.close()'}
<a data-href={$link|checkUrl}>kontrolliert</a>
<a data-href={$link}>unkontrolliert</a>
Gibt aus:
<a data-href="">kontrolliert</a>
<a data-href="javascript:window.close()">unkontrolliert</a>
Siehe auch nocheck.
clamp (int|float $min, int|float $max)
Begrenzt einen Wert auf den angegebenen inklusiven Bereich von min und max.
{$level|clamp: 0, 255}
Existiert auch als Funktion.
dataStream (string $mimetype=detect)
Konvertiert den Inhalt in das data URI scheme. Damit können Bilder in HTML oder CSS eingebettet werden, ohne externe Dateien verlinken zu müssen.
Nehmen wir an, wir haben ein Bild in der Variablen $img = Image::fromFile('bild.gif')
, dann
<img src={$img|dataStream}>
Gibt beispielsweise aus:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==">
Erfordert die PHP-Erweiterung fileinfo
.
date (string $format)
Formatiert Datum und Uhrzeit gemäß der von der PHP-Funktion date verwendeten Maske. Der
Filter akzeptiert das Datum im UNIX-Timestamp-Format, als Zeichenkette oder als Objekt vom Typ DateTimeInterface
.
{$today|date:'j. n. Y'}
Siehe auch localDate.
escapeUrl
Escapet eine Variable zur Verwendung als Parameter in einer URL.
<a href="http://example.com/{$name|escapeUrl}">{$name}</a>
Siehe auch query.
explode (string
$separator=''
)
Teilt eine Zeichenkette anhand eines Trennzeichens in ein Array auf. Alias für split
.
{='one,two,three'|explode:','} {* gibt ['one', 'two', 'three'] zurück *}
Wenn das Trennzeichen eine leere Zeichenkette ist (Standardwert), wird die Eingabe in einzelne Zeichen aufgeteilt:
{='123'|explode} {* gibt ['1', '2', '3'] zurück *}
Sie können auch den Alias split
verwenden:
{='1,2,3'|split:','} {* gibt ['1', '2', '3'] zurück *}
Siehe auch implode.
first
Gibt das erste Element eines Arrays oder das erste Zeichen einer Zeichenkette zurück:
{=[1, 2, 3, 4]|first} {* gibt 1 aus *}
{='abcd'|first} {* gibt 'a' aus *}
floor (int $precision=0)
Rundet eine Zahl auf die angegebene Genauigkeit ab.
{=3.5|floor} {* gibt 3 aus *}
{=135.79|floor:1} {* gibt 135.7 aus *}
{=135.79|floor:3} {* gibt 135.79 aus *}
firstUpper
Wandelt den ersten Buchstaben in einen Großbuchstaben um. Erfordert die PHP-Erweiterung mbstring
.
{='the latte'|firstUpper} {* gibt 'The latte' aus *}
Siehe auch capitalize, lower, upper.
group (string|int|\Closure $by): array
Der Filter gruppiert Daten nach verschiedenen Kriterien.
In diesem Beispiel werden die Zeilen in der Tabelle nach der Spalte categoryId
gruppiert. Die Ausgabe ist ein
Array von Arrays, wobei der Schlüssel der Wert in der Spalte categoryId
ist. Lesen Sie die detaillierte Anleitung.
{foreach ($items|group: categoryId) as $categoryId => $categoryItems}
<ul>
{foreach $categoryItems as $item}
<li>{$item->name}</li>
{/foreach}
</ul>
{/foreach}
Siehe auch batch, Funktion group und Tag iterateWhile.
implode (string $glue=''
)
Gibt eine Zeichenkette zurück, die die Verkettung der Elemente einer Sequenz ist. Alias für join
.
{=[1, 2, 3]|implode} {* gibt '123' aus *}
{=[1, 2, 3]|implode:'|'} {* gibt '1|2|3' aus *}
Sie können auch den Alias join
verwenden:
{=[1, 2, 3]|join} {* gibt '123' aus *}
indent (int $level=1, string
$char="\t"
)
Rückt Text von links um die angegebene Anzahl von Tabulatoren oder anderen Zeichen ein, die im zweiten Argument angegeben werden können. Leere Zeilen werden nicht eingerückt.
<div>
{block |indent}
<p>Hello</p>
{/block}
</div>
Gibt aus:
<div>
<p>Hello</p>
</div>
last
Gibt das letzte Element eines Arrays oder das letzte Zeichen einer Zeichenkette zurück:
{=[1, 2, 3, 4]|last} {* gibt 4 aus *}
{='abcd'|last} {* gibt 'd' aus *}
length
Gibt die Länge einer Zeichenkette oder eines Arrays zurück.
- für Zeichenketten gibt die Länge in UTF-8-Zeichen zurück
- für Arrays gibt die Anzahl der Elemente zurück
- für Objekte, die das Interface Countable implementieren, verwendet den Rückgabewert der Methode count()
- für Objekte, die das Interface IteratorAggregate implementieren, verwendet den Rückgabewert der Funktion iterator_count()
{if ($users|length) > 10}
...
{/if}
localDate (?string $format=null, ?string $date=null, ?string $time=null)
Formatiert Datum und Uhrzeit gemäß der Spracheinstellung, was
eine konsistente und lokalisierte Anzeige von Zeitangaben über verschiedene Sprachen und Regionen hinweg gewährleistet. Der
Filter akzeptiert das Datum als UNIX-Timestamp, Zeichenkette oder Objekt vom Typ DateTimeInterface
.
{$date|localDate} {* 15. April 2024 *}
{$date|format: yM} {* 4/2024 *}
{$date|localDate: date: medium} {* 15. 4. 2024 *}
Wenn Sie den Filter ohne Parameter verwenden, wird das Datum im long
-Format ausgegeben, siehe unten.
a) Verwendung des Formats
Der Parameter format
beschreibt, welche Zeitkomponenten angezeigt werden sollen. Er verwendet dafür
Buchstabencodes, deren Wiederholungsanzahl die Breite der Ausgabe beeinflusst:
Jahr | y / yy / yyyy |
2024 / 24 / 2024 |
Monat | M / MM / MMM / MMMM |
8 / 08 / Aug / August |
Tag | d / dd / E / EEEE |
1 / 01 / So / Sonntag |
Stunde | j / H / h |
bevorzugt / 24-Stunden / 12-Stunden |
Minute | m / mm |
5 / 05 (2 Ziffern in Kombination mit Sekunden) |
Sekunde | s / ss |
8 / 08 (2 Ziffern in Kombination mit Minuten) |
Die Reihenfolge der Codes im Format spielt keine Rolle, da die Reihenfolge der Komponenten gemäß den Gepflogenheiten der
Spracheinstellung ausgegeben wird. Das Format ist also davon unabhängig. Zum Beispiel gibt das Format yyyyMMMMd
in
der Umgebung en_US
April 15, 2024
aus, während es in der Umgebung de_DE
15. April 2024
ausgibt:
locale: | de_DE | en_US |
---|---|---|
format: 'dMy' |
10. 8. 2024 | 8/10/2024 |
format: 'yM' |
8/2024 | 8/2024 |
format: 'yyyyMMMM' |
August 2024 | August 2024 |
format: 'MMMM' |
August | August |
format: 'jm' |
17:22 | 5:22 PM |
format: 'Hm' |
17:22 | 17:22 |
format: 'hm' |
5:22 nachm. | 5:22 PM |
b) Verwendung vordefinierter Stile
Die Parameter date
und time
bestimmen, wie detailliert Datum und Uhrzeit ausgegeben werden sollen.
Sie können aus mehreren Stufen wählen: full
, long
, medium
, short
. Es kann
nur das Datum, nur die Uhrzeit oder beides ausgegeben werden:
locale: | de_DE | en_US |
---|---|---|
date: short |
23.01.78 | 1/23/78 |
date: medium |
23.01.1978 | Jan 23, 1978 |
date: long |
23. Januar 1978 | January 23, 1978 |
date: full |
Montag, 23. Januar 1978 | Monday, January 23, 1978 |
time: short |
08:30 | 8:30 AM |
time: medium |
08:30:59 | 8:30:59 AM |
time: long |
08:30:59 MEZ | 8:30:59 AM GMT+1 |
date: short, time: short |
23.01.78, 08:30 | 1/23/78, 8:30 AM |
date: medium, time: short |
23.01.1978, 08:30 | Jan 23, 1978, 8:30 AM |
date: long, time: short |
23. Januar 1978 um 08:30 | January 23, 1978 at 8:30 AM |
Beim Datum kann zusätzlich das Präfix relative-
verwendet werden (z. B. relative-short
), das für
Daten nahe der Gegenwart gestern
, heute
oder morgen
anzeigt, ansonsten wird es
standardmäßig ausgegeben.
{$date|localDate: date: relative-short} {* gestern *}
Siehe auch date.
lower
Wandelt eine Zeichenkette in Kleinbuchstaben um. Erfordert die PHP-Erweiterung mbstring
.
{='LATTE'|lower} {* gibt 'latte' aus *}
Siehe auch capitalize, firstUpper, upper.
nocheck
Verhindert die automatische Bereinigung einer URL-Adresse. Latte prüft automatisch, ob die Variable eine Web-URL enthält (d. h. das HTTP/HTTPS-Protokoll) und verhindert die Ausgabe von Links, die ein Sicherheitsrisiko darstellen können.
Wenn der Link ein anderes Schema verwendet, z. B. javascript:
oder data:
, und Sie sich seines Inhalts
sicher sind, können Sie die Überprüfung mit |nocheck
deaktivieren.
{var $link = 'javascript:window.close()'}
<a href={$link}>kontrolliert</a>
<a href={$link|nocheck}>unkontrolliert</a>
Gibt aus:
<a href="">kontrolliert</a>
<a href="javascript:window.close()">unkontrolliert</a>
Siehe auch checkUrl.
noescape
Deaktiviert das automatische Escaping.
{var $trustedHtmlString = '<b>hello</b>'}
Escaped: {$trustedHtmlString}
Unescaped: {$trustedHtmlString|noescape}
Gibt aus:
Escaped: <b>hello</b>
Unescaped: <b>hello</b>
Eine falsche Verwendung des noescape
-Filters kann zu einer XSS-Schwachstelle führen! Verwenden
Sie ihn niemals, wenn Sie nicht absolut sicher sind, was Sie tun, und dass die ausgegebene Zeichenkette aus einer
vertrauenswürdigen Quelle stammt.
number (int $decimals=0, string
$decPoint='.'
, string $thousandsSep=','
)
Formatiert eine Zahl auf eine bestimmte Anzahl von Dezimalstellen. Wenn die Spracheinstellung gesetzt ist, werden die entsprechenden Dezimal- und Tausendertrennzeichen verwendet.
{1234.20|number} 1,234
{1234.20|number:1} 1,234.2
{1234.20|number:2} 1,234.20
{1234.20|number:2, ',', ' '} 1 234,20
number (string $format)
Der Parameter format
ermöglicht es, das Erscheinungsbild von Zahlen genau nach Ihren Bedürfnissen zu definieren.
Dazu muss die Spracheinstellung gesetzt sein. Das Format besteht aus
mehreren Sonderzeichen, deren vollständige Beschreibung Sie in der Dokumentation DecimalFormat finden:
0
obligatorische Ziffer, wird immer angezeigt, auch wenn es eine Null ist#
optionale Ziffer, wird nur angezeigt, wenn an dieser Stelle tatsächlich eine Zahl steht@
signifikante Ziffer, hilft, eine Zahl mit einer bestimmten Anzahl von signifikanten Ziffern anzuzeigen.
gibt an, wo das Dezimaltrennzeichen (Komma oder Punkt, je nach Land) sein soll,
dient zur Trennung von Zifferngruppen, meist Tausender%
multipliziert die Zahl mit 100× und fügt das Prozentzeichen hinzu
Sehen wir uns einige Beispiele an. Im ersten Beispiel sind zwei Dezimalstellen obligatorisch, im zweiten optional. Das dritte Beispiel zeigt das Auffüllen mit Nullen von links und rechts, das vierte zeigt nur vorhandene Ziffern an:
{1234.5|number: '#,##0.00'} {* 1,234.50 *}
{1234.5|number: '#,##0.##'} {* 1,234.5 *}
{1.23 |number: '000.000'} {* 001.230 *}
{1.2 |number: '##.##'} {* 1.2 *}
Signifikante Ziffern bestimmen, wie viele Ziffern unabhängig vom Dezimaltrennzeichen angezeigt werden sollen, wobei gerundet wird:
{1234|number: '@@'} {* 1200 *}
{1234|number: '@@@'} {* 1230 *}
{1234|number: '@@@#'} {* 1234 *}
{1.2345|number: '@@@'} {* 1.23 *}
{0.00123|number: '@@'} {* 0.0012 *}
Eine einfache Möglichkeit, eine Zahl als Prozentsatz anzuzeigen. Die Zahl wird mit 100× multipliziert und das Zeichen
%
hinzugefügt:
{0.1234|number: '#.##%'} {* 12.34% *}
Wir können ein unterschiedliches Format für positive und negative Zahlen definieren, getrennt durch das Zeichen
;
. Auf diese Weise kann beispielsweise festgelegt werden, dass positive Zahlen mit einem +
-Zeichen
angezeigt werden sollen:
{42|number: '#.##;(#.##)'} {* 42 *}
{-42|number: '#.##;(#.##)'} {* (42) *}
{42|number: '+#.##;-#.##'} {* +42 *}
{-42|number: '+#.##;-#.##'} {* -42 *}
Beachten Sie, dass das tatsächliche Erscheinungsbild von Zahlen je nach Ländereinstellung variieren kann. Beispielsweise wird in einigen Ländern ein Komma anstelle eines Punktes als Dezimaltrennzeichen verwendet. Dieser Filter berücksichtigt dies automatisch, und Sie müssen sich um nichts kümmern.
padLeft (int $length, string
$pad=' '
)
Füllt eine Zeichenkette auf eine bestimmte Länge mit einer anderen Zeichenkette von links auf.
{='hello'|padLeft: 10, '123'} {* gibt '12312hello' aus *}
padRight (int $length, string
$pad=' '
)
Füllt eine Zeichenkette auf eine bestimmte Länge mit einer anderen Zeichenkette von rechts auf.
{='hello'|padRight: 10, '123'} {* gibt 'hello12312' aus *}
query
Generiert dynamisch einen Query-String in einer URL:
<a href="http://example.com/?{[name: 'John Doe', age: 43]|query}">click</a>
<a href="http://example.com/?search={$search|query}">search</a>
Gibt aus:
<a href="http://example.com/?name=John+Doe&age=43">click</a>
<a href="http://example.com/?search=Foo+Bar">search</a>
Schlüssel mit dem Wert null
werden ausgelassen.
Siehe auch escapeUrl.
random
Gibt ein zufälliges Element eines Arrays oder ein zufälliges Zeichen einer Zeichenkette zurück:
{=[1, 2, 3, 4]|random} {* gibt z.B. 3 aus *}
{='abcd'|random} {* gibt z.B. 'b' aus *}
repeat (int $count)
Wiederholt eine Zeichenkette x-mal.
{='hello'|repeat: 3} {* gibt 'hellohellohello' aus *}
replace (string|array $search, string
$replace=''
)
Ersetzt alle Vorkommen der Suchzeichenkette durch die Ersatzzeichenkette.
{='hello world'|replace: 'world', 'friend'} {* gibt 'hello friend' aus *}
Es können auch mehrere Ersetzungen gleichzeitig durchgeführt werden:
{='hello world'|replace: [h => l, l => h]} {* gibt 'lehho worhd' aus *}
replaceRE (string $pattern, string
$replace=''
)
Führt eine Suche mit regulären Ausdrücken und Ersetzung durch.
{='hello world'|replaceRE: '/l.*/', 'l'} {* gibt 'hel' aus *}
reverse
Kehrt die gegebene Zeichenkette oder das Array um.
{var $s = 'Nette'}
{$s|reverse} {* gibt 'etteN' aus *}
{var $a = ['N', 'e', 't', 't', 'e']}
{$a|reverse} {* gibt ['e', 't', 't', 'e', 'N'] zurück *}
round (int $precision=0)
Rundet eine Zahl auf die angegebene Genauigkeit.
{=3.4|round} {* gibt 3 aus *}
{=3.5|round} {* gibt 4 aus *}
{=135.79|round:1} {* gibt 135.8 aus *}
{=135.79|round:3} {* gibt 135.79 aus *}
slice (int $start, ?int $length=null, bool $preserveKeys=false)
Extrahiert einen Teil eines Arrays oder einer Zeichenkette.
{='hello'|slice: 1, 2} {* gibt 'el' aus *}
{=['a', 'b', 'c']|slice: 1, 2} {* gibt ['b', 'c'] aus *}
Der Filter funktioniert wie die PHP-Funktion array_slice
für Arrays oder mb_substr
für
Zeichenketten mit einem Fallback auf die Funktion iconv_substr
im UTF-8-Modus.
Wenn start positiv ist, beginnt die Sequenz um diese Anzahl vom Anfang des Arrays/der Zeichenkette verschoben. Wenn es negativ ist, beginnt die Sequenz um so viel vom Ende verschoben.
Wenn der Parameter length angegeben ist und positiv ist, enthält die Sequenz so viele Elemente. Wenn dieser Funktion ein negativer Parameter length übergeben wird, enthält die Sequenz alle Elemente des ursprünglichen Arrays, beginnend bei der Position start und endend bei einer Position, die um length Elemente kleiner ist als das Ende des Arrays. Wenn Sie diesen Parameter nicht angeben, enthält die Sequenz alle Elemente des ursprünglichen Arrays, beginnend bei der Position start.
Standardmäßig ändert der Filter die Reihenfolge und setzt die Ganzzahl-Schlüssel des Arrays zurück. Dieses Verhalten kann durch Setzen von preserveKeys auf true geändert werden. Zeichenketten-Schlüssel bleiben immer erhalten, unabhängig von diesem Parameter.
sort (?Closure $comparison, string|int|\Closure|null $by=null, string|int|\Closure|bool $byKey=false)
Der Filter sortiert die Elemente eines Arrays oder Iterators und behält ihre assoziativen Schlüssel bei. Bei gesetzter Spracheinstellung richtet sich die Sortierung nach deren Regeln, sofern keine eigene Vergleichsfunktion angegeben ist.
{foreach ($names|sort) as $name}
...
{/foreach}
Sortiertes Array in umgekehrter Reihenfolge:
{foreach ($names|sort|reverse) as $name}
...
{/foreach}
Sie können eine eigene Vergleichsfunktion für die Sortierung angeben (das Beispiel zeigt, wie man die Sortierung von der größten zur kleinsten umkehrt):
{var $reverted = ($names|sort: fn($a, $b) => $b <=> $a)}
Der Filter |sort
ermöglicht auch das Sortieren von Elementen nach Schlüsseln:
{foreach ($names|sort: byKey: true) as $name}
...
{/foreach}
Wenn Sie eine Tabelle nach einer bestimmten Spalte sortieren müssen, können Sie den Parameter by
verwenden. Der
Wert 'name'
im Beispiel gibt an, dass nach $item->name
oder $item['name']
sortiert wird,
je nachdem, ob $item
ein Array oder ein Objekt ist:
{foreach ($items|sort: by: 'name') as $item}
{$item->name}
{/foreach}
Sie können auch eine Callback-Funktion definieren, die den Wert bestimmt, nach dem sortiert werden soll:
{foreach ($items|sort: by: fn($items) => $items->category->name) as $item}
{$item->name}
{/foreach}
Auf die gleiche Weise kann auch der Parameter byKey
verwendet werden.
spaceless
Entfernt unnötige Leerzeichen aus der Ausgabe. Sie können auch den Alias strip
verwenden.
{block |spaceless}
<ul>
<li>Hello</li>
</ul>
{/block}
Gibt aus:
<ul> <li>Hello</li> </ul>
stripHtml
Konvertiert HTML in reinen Text. Das heißt, es entfernt HTML-Tags und konvertiert HTML-Entitäten in Text.
{='<p>one < two</p>'|stripHtml} {* gibt 'one < two' aus *}
Der resultierende reine Text kann natürlich Zeichen enthalten, die HTML-Tags darstellen, z. B. wird
'<p>'|stripHtml
in <p>
konvertiert. Geben Sie solchen resultierenden Text
keinesfalls mit |noescape
aus, da dies zu einer Sicherheitslücke führen kann.
substr (int $offset, ?int $length=null)
Extrahiert einen Teil einer Zeichenkette. Dieser Filter wurde durch den Filter slice ersetzt.
{$string|substr: 1, 2}
translate (…$args)
Übersetzt Ausdrücke in andere Sprachen. Damit der Filter verfügbar ist, muss der Übersetzer eingestellt werden. Sie können auch Tags für die Übersetzung verwenden.
<a href="basket">{='Warenkorb'|translate}</a>
<span>{$item|translate}</span>
trim (string
$charlist=" \t\n\r\0\x0B\u{A0}"
)
Entfernt Leerzeichen (oder andere Zeichen) vom Anfang und Ende einer Zeichenkette.
{=' I like Latte. '|trim} {* gibt 'I like Latte.' aus *}
{=' I like Latte.'|trim: '.'} {* gibt ' I like Latte' aus *}
truncate (int $length, string
$append='…'
)
Kürzt eine Zeichenkette auf die angegebene maximale Länge und versucht dabei, ganze Wörter beizubehalten. Wenn die Zeichenkette gekürzt wird, wird am Ende ein Auslassungspunkt hinzugefügt (kann durch den zweiten Parameter geändert werden).
{var $title = 'Hello, how are you?'}
{$title|truncate:5} {* Hell… *}
{$title|truncate:17} {* Hello, how are… *}
{$title|truncate:30} {* Hello, how are you? *}
upper
Wandelt eine Zeichenkette in Großbuchstaben um. Erfordert die PHP-Erweiterung mbstring
.
{='latte'|upper} {* gibt 'LATTE' aus *}
Siehe auch capitalize, firstUpper, lower.
webalize
Wandelt eine UTF-8-Zeichenkette in die in URLs verwendete Form um.
Wird in ASCII konvertiert. Wandelt Leerzeichen in Bindestriche um. Entfernt Zeichen, die keine alphanumerischen Zeichen, Unterstriche oder Bindestriche sind. Wandelt in Kleinbuchstaben um. Entfernt auch führende und nachfolgende Leerzeichen.
{var $s = 'Unser 10. Produkt'}
{$s|webalize} {* gibt 'unser-10-produkt' aus *}
Erfordert die Bibliothek nette/utils.