Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Zeichenketten-Operatoren

Die 15 Operatoren von eZTemplateStringOperator (upcase, downcase, upfirst, upword, count_words, count_chars, trim, simplify, pad, shorten, wrap, break, wash, ord, chr), jeder wash-Typ (xhtml, email, javascript, pdf) und…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/template-operators/string-operators.md

On this page

This page is a translation. Read the English original

Zeichenketten-Operatoren

Die Textoperatoren, die ein Template am häufigsten verwendet, darunter wash, der Maskierungsoperator, den jedes Template braucht, das Inhalte von Benutzern ausgibt. Alle 15 registriert eZTemplateStringOperator (lib/eztemplate/classes/eztemplatestringoperator.php) über lib/eztemplate/classes/eztemplateautoload.php.

Alle arbeiten mit der Eingabe über die Pipe. Eine Eingabe null (ein nicht gesetztes Attribut) wird als leere Zeichenkette behandelt. Wo ein Operator eine Multibyte-Variante hat (mb_strtoupper, mb_strlen, mb_substr), wird sie verwendet, wenn die Erweiterung mbstring geladen ist, sodass Buchstaben mit Akzent als ein Zeichen behandelt werden.

Die PHP-Zeichenkettenfunktionen wie strlen, substr oder sprintf sind eine andere Familie: PHP-Zeichenkettenfunktionen.

Inhalt

  1. Groß- und Kleinschreibung: upcase, downcase, upfirst und upword
  2. Zählen: count_words und count_chars
  3. Bereinigen: trim, simplify und pad
  4. shorten
  5. Zeilenumbrüche: wrap und break
  6. wash
  7. Codepunkte: ord und chr
  8. Verwandte Seiten

Groß- und Kleinschreibung: upcase, downcase, upfirst und upword

upcase

Die Eingabe in Großbuchstaben (mb_strtoupper). Keine Parameter. Gibt eine Zeichenkette zurück. Erzeugte Referenz: upcase.

downcase

Die Eingabe in Kleinbuchstaben (mb_strtolower). Keine Parameter. Gibt eine Zeichenkette zurück. Erzeugte Referenz: downcase.

upfirst

Das erste Zeichen groß, der Rest unverändert. Mit [CharacterSettings] MBStringExtension=enabled in i18n.ini arbeitet er mit mb_*-Funktionen auf dem internen Zeichensatz, sonst mit ucfirst(). Keine Parameter. Erzeugte Referenz: upfirst.

upword

Das erste Zeichen jedes Wortes (Wörter an einzelnen Leerzeichen getrennt) groß, mit derselben Multibyte-Regel. Keine Parameter. Erzeugte Referenz: upword.

'fit & healthy'|upcase = {'fit & healthy'|upcase|wash}
'ÜBER Exponential'|downcase = {'ÜBER Exponential'|downcase}
'élan vital'|upfirst = {'élan vital'|upfirst}
'healthy eating for runners'|upword = {'healthy eating for runners'|upword}

Ausgabe:

'fit & healthy'|upcase = FIT & HEALTHY
'ÜBER Exponential'|downcase = über exponential
'élan vital'|upfirst = Élan vital
'healthy eating for runners'|upword = Healthy Eating For Runners

Zählen: count_words und count_chars

count_words

Die Anzahl der Wörter, gezählt als Folgen von Wortzeichen (preg_match_all( "#(\w+)#" )), daher ist & kein Wort. Keine Parameter. Gibt eine Ganzzahl zurück. Erzeugte Referenz: count_words.

count_chars

Die Anzahl der Zeichen (mb_strlen). Anders als das arithmetische count, das bei einer Zeichenkette die Länge in Bytes zurückgibt, zählt count_chars ein Multibyte-Zeichen einmal. Keine Parameter. Gibt eine Ganzzahl zurück. Erzeugte Referenz: count_chars.

'Fit & Healthy recipes'|count_words = {'Fit & Healthy recipes'|count_words}
'Grüße'|count_chars = {'Grüße'|count_chars}
'Grüße'|count = {'Grüße'|count} (the arithmetic count: bytes)

Ausgabe:

'Fit & Healthy recipes'|count_words = 3
'Grüße'|count_chars = 5
'Grüße'|count = 7 (the arithmetic count: bytes)

Bereinigen: trim, simplify und pad

trim

PHP trim(): entfernt Leerraum oder die Zeichen in chars_to_remove an beiden Enden.

ParameterTypPflichtStandard
chars_to_removeZeichenketteneinfalse (Leerraum)

Erzeugte Referenz: trim.

simplify

Ersetzt Folgen von zwei oder mehr gleichen Zeichen durch eines. Ohne Parameter fasst er Leerzeichen zusammen. Der Parameter wird unverändert in einen regulären Ausdruck eingesetzt, übergeben Sie also ein einfaches Zeichen und keines, das in einem Muster eine Bedeutung hat.

ParameterTypPflichtStandard
charZeichenketteneinfalse (ein Leerzeichen)

Erzeugte Referenz: simplify.

pad

PHP str_pad() nach rechts, aber nur, wenn die Eingabe kürzer als desired_length ist (in Bytes gemessen).

ParameterTypPflichtStandard
desired_lengthGanzzahlnein80
pad_sequenceZeichenkettenein' '

Erzeugte Referenz: pad.

[{'   padded   '|trim}]
[{'--title--'|trim( '-' )}]
[{'too    many     spaces'|simplify}]
[{'a---b--c'|simplify( '-' )}]
[{'7'|pad( 3, '0' )}]
[{'Name'|pad( 10 )}]
[{'already long'|pad( 4 )}]

Ausgabe:

[padded]
[title]
[too many spaces]
[a-b-c]
[700]
[Name      ]
[already long]

shorten

shorten

Kürzt einen Text, der länger als chars_to_keep Zeichen ist, sodass das Ergebnis einschließlich str_to_append höchstens diese Länge hat. Mit trim_type right (Standard) schneidet er das Ende ab und entfernt vor dem Anhängen Leerraum am Ende; mit middle behält er Anfang und Ende und setzt str_to_append dazwischen. Ein Text, der kurz genug ist, wird unverändert zurückgegeben.

ParameterTypPflichtStandard
chars_to_keepGanzzahlnein80
str_to_appendZeichenkettenein'...'
trim_typeZeichenkette (right oder middle)nein'right'

Gibt eine Zeichenkette zurück. shorten zählt Zeichen, keine Wörter, und kann ein Wort oder ein HTML-Tag in der Mitte zerschneiden: Kürzen Sie reinen Text und wenden Sie danach wash an. Erzeugte Referenz: shorten.

Die erste Zeile verwendet den Namen des Artikels Privacy Policy auf einer Entwicklungsinstallation (Knoten 90):

{def $node = fetch( 'content', 'node', hash( 'node_id', 90 ) )}
{$node.name|shorten( 10 )}
{'A long title that does not fit'|shorten( 20 )}
{'A long title that does not fit'|shorten( 20, ' [more]' )}
{'A long title that does not fit'|shorten( 20, '...', 'middle' )}
{'Short'|shorten( 20 )}

Ausgabe:

Privacy...
A long title that...
A long title [more]
A long t...s not fit
Short

Zeilenumbrüche: wrap und break

wrap

PHP wordwrap(). Jeder Parameter wird nur übergeben, wenn der vorherige angegeben und nicht leer ist.

ParameterTypPflichtStandard
wrap_at_positionGanzzahlneinfalse (75 von PHP)
break_sequenceZeichenketteneinfalse ("\n" von PHP)
cutboolescher Wertneinfalse

Erzeugte Referenz: wrap.

break

PHP nl2br(): ein HTML-Zeilenumbruch vor jedem Zeilenwechsel. Keine Parameter. break maskiert nicht: Wenden Sie zuerst wash an, $text|wash|break, sonst geht das HTML der Eingabe durch. Erzeugte Referenz: break.

{'The quick brown fox jumps over the lazy dog'|wrap( 15 )}
---
{'The quick brown fox'|wrap( 10, '<br />' )}
---
{'Supercalifragilistic'|wrap( 6, '|', true() )}
---
{"line one
line two"|break}

Ausgabe:

The quick brown
fox jumps over
the lazy dog
---
The quick<br />brown fox
---
Superc|alifra|gilist|ic
---
line one<br />
line two

wash

wash

Macht Text für eine bestimmte Art von Ausgabe sicher. Der Typ ist der einzige Parameter.

ParameterTypPflichtStandard
typeZeichenkettenein'xhtml'
TypWas er tut (eZTemplateStringOperator::wash())
xhtmlhtmlspecialchars() mit ENT_QUOTES: <, >, &, " und ' werden zu Entitäten
emaildie Maskierung von xhtml, dann werden . und @ durch [WashSettings] EmailDotText und EmailAtText der template.ini ersetzt, um Adressen vor Sammlern zu verbergen
javascripteZTemplateStringOperator::javascriptString(): der Inhalt eines JavaScript-Zeichenkettenliterals; Backslash, beide Anführungszeichen, <, >, &, Zeilenumbrüche und die Unicode-Zeilen- und Absatztrenner werden maskiert
pdffür den PDF-Export: HTML-Entitäten werden dekodiert, dann werden Leerzeichen, Tabulatoren und Zeilenwechsel zu den Callbacks <C:callSpace>, <C:callTab> und <C:callNewLine> der PDF-Bibliothek

Jeder andere Typ gibt die Eingabe unverändert zurück, ohne Maskierung und ohne Warnung, ein Tippfehler im Typ ist also ein Sicherheitsproblem. Auf einer Entwicklungsinstallation ist EmailAtText auf ein spamfilter-Span gesetzt, wie das Beispiel zeigt.

Ein kompiliertes Template macht aus wash mit einem konstanten Typ Inline-PHP (washTransformation()); der kompilierte Zweig für pdf ersetzt nur Leerraum und dekodiert vorher keine Entitäten. Erzeugte Referenz: wash.

xhtml:      {'<b>"Fit" & \'Healthy\'</b>'|wash}
email:      {'[email protected]'|wash( 'email' )}
javascript: {'He said "hi" </script>'|wash( 'javascript' )}
pdf:        {'85 g&nbsp;spinach	end'|wash( 'pdf' )}
unknown:    {'<b>raw</b>'|wash( 'no-such-type' )}

Ausgabe:

xhtml:      &lt;b&gt;&quot;Fit&quot; &amp; &#039;Healthy&#039;&lt;/b&gt;
email:      info<span class="spamfilter">SPAMFILTER</span>@example.com
javascript: He said \042hi\042 \x3C/script\x3E
pdf:        85<C:callSpace>g spinach<C:callTab>end
unknown:    <b>raw</b>

Codepunkte: ord und chr

ord

Wandelt eine Zeichenkette über den Codec unicode von eZTextCodec in eine Liste von Unicode-Codepunkten um. Keine Parameter. Gibt ein Array von Ganzzahlen zurück. Erzeugte Referenz: ord.

chr

Die Umkehrung: eine Liste von Codepunkten zu einer Zeichenkette im internen Zeichensatz. Keine Parameter. Gibt eine Zeichenkette zurück. Erzeugte Referenz: chr.

{def $codes = 'Añ€'|ord}
'Añ€'|ord = {$codes|implode( ', ' )}
back with chr = {$codes|chr}
array( 72, 105 )|chr = {array( 72, 105 )|chr}

Ausgabe:

'Añ€'|ord = 65, 241, 8364
back with chr = Añ€
array( 72, 105 )|chr = Hi

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x