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

PHP-Zeichenkettenfunktionen: umwandeln

Die umwandelnden Operatoren von eZTemplateStringsOperator (substr, substr_replace, ristring, rstring, strtr, str_split, str_word_count, str_getcsv, strtok, ltrim, rtrim, lcfirst, chunk_split, addslashes, stripslashes…

Download as PDF

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

On this page

This page is a translation. Read the English original

PHP-Zeichenkettenfunktionen: umwandeln

Diese Seite behandelt die Operatoren von eZTemplateStringsOperator (lib/eztemplate/classes/eztemplatestringsoperator.php), die Zeichenketten ausschneiden, ersetzen, aufteilen und maskieren. Die Abbildungsregel ist für alle gleich: Die gepipte Eingabe ist die Hauptzeichenkette der PHP-Funktion, die Template-Parameter sind ihre übrigen Argumente in ihrer Reihenfolge (wie die Funktionen abgebildet werden).

Diese Funktionen arbeiten auf Bytes. Für Text mit Akzenten oder anderen Multibyte-Zeichen arbeiten die Array-Operatoren extract, insert, remove und replace auf Zeichen (Array-Operatoren).

Inhalt

  1. Ausschneiden: substr und substr_replace
  2. Ersetzen: ristring, rstring und strtr
  3. Aufteilen: str_split, str_word_count, str_getcsv und strtok
  4. Ränder und Schreibung: ltrim, rtrim, lcfirst und chunk_split
  5. Backslashes: addslashes, stripslashes, addcslashes, stripcslashes und quotemeta
  6. strip_tags und die Registrierungsfalle
  7. str_shuffle und hebrev
  8. str_increment und str_decrement
  9. Verwandte Seiten

Ausschneiden: substr und substr_replace

substr

PHP substr(). Ohne Startwert protokolliert es "Missing required parameter: start".

ParameterTypErforderlichStandardwert
startinteger (negativ zählt vom Ende)jakeiner
lengthintegerneinbis zum Ende

Gibt eine Zeichenkette zurück. Generierte Referenz: substr.

substr_replace

PHP substr_replace(): ersetzt den Teil ab start (über length Bytes) durch den Ersatz.

ParameterTypErforderlichStandardwert
replacestringjakeiner
startintegerjakeiner
lengthintegerneinbis zum Ende

Gibt eine Zeichenkette zurück. Generierte Referenz: substr_replace.

{def $s = 'Healthy eating'}
substr( 8 ) = {$s|substr( 8 )}
substr( 0, 7 ) = {$s|substr( 0, 7 )}
substr( -6 ) = {$s|substr( -6 )}
substr_replace( 'Clean', 0, 7 ) = {$s|substr_replace( 'Clean', 0, 7 )}
substr_replace( '!', 14 ) = {$s|substr_replace( '!', 14 )}

Ausgabe:

substr( 8 ) = eating
substr( 0, 7 ) = Healthy
substr( -6 ) = eating
substr_replace( 'Clean', 0, 7 ) = Clean eating
substr_replace( '!', 14 ) = Healthy eating!

Ersetzen: ristring, rstring und strtr

ristring

PHP str_replace( search, replace, input ): Ersetzung mit Beachtung der Groß- und Kleinschreibung, trotz des "i" im Namen. Suche und Ersatz dürfen wie in PHP Arrays sein.

ParameterTypErforderlichStandardwert
searchstring oder arrayjakeiner
replacestring oder arrayjakeiner

Gibt eine Zeichenkette zurück. Generierte Referenz: ristring.

rstring

PHP str_ireplace(): die Ersetzung ohne Beachtung der Groß- und Kleinschreibung. Dieselben Parameter wie ristring. Generierte Referenz: rstring.

Die Namen sind das Gegenteil dessen, was man vermuten würde; der Klassenkommentar dokumentiert sie als ristring: str_replace und rstring: str_ireplace, und das Beispiel bestätigt es. Auf einer Entwicklungsinstallation bietet außerdem die Erweiterung owsimpleoperator einen einfachen Operator str_replace an (owsimpleoperator).

strtr

PHP strtr() in seinen beiden Formen: zwei Zeichenketten (Übersetzung Zeichen für Zeichen) oder ein Hash (ganze Zeichenketten, die längste zuerst). Alles andere protokolliert "Requires (from_string, to_string) or a single associative array".

ParameterTypErforderlichStandardwert
from oder ein Hash mit Ersetzungenstring oder hashjakeiner
tostringbei einer Zeichenkette fromkeiner

Gibt eine Zeichenkette zurück. Generierte Referenz: strtr.

{def $s = 'Fit and healthy. Stay Healthy.'}
ristring( 'healthy', 'strong' ) = {$s|ristring( 'healthy', 'strong' )}
rstring( 'healthy', 'strong' ) = {$s|rstring( 'healthy', 'strong' )}
ristring( array( 'Fit', 'Stay' ), array( 'Be', 'Keep' ) ) = {$s|ristring( array( 'Fit', 'Stay' ), array( 'Be', 'Keep' ) )}
strtr( 'aeiou', 'AEIOU' ) = {$s|strtr( 'aeiou', 'AEIOU' )}
strtr( hash( 'Fit', 'Strong', 'healthy', 'happy' ) ) = {$s|strtr( hash( 'Fit', 'Strong', 'healthy', 'happy' ) )}

Ausgabe:

ristring( 'healthy', 'strong' ) = Fit and strong. Stay Healthy.
rstring( 'healthy', 'strong' ) = Fit and strong. Stay strong.
ristring( array( 'Fit', 'Stay' ), array( 'Be', 'Keep' ) ) = Be and healthy. Keep Healthy.
strtr( 'aeiou', 'AEIOU' ) = FIt And hEAlthy. StAy HEAlthy.
strtr( hash( 'Fit', 'Strong', 'healthy', 'happy' ) ) = Strong and happy. Stay Healthy.

Aufteilen: str_split, str_word_count, str_getcsv und strtok

str_split

PHP str_split(): die Zeichenkette in Stücken von length Bytes (Standardwert 1). Gibt ein Array zurück. Generierte Referenz: str_split.

str_word_count

PHP str_word_count(): ohne Parameter die Zahl der Wörter; mit format 1 eine Liste der Wörter, mit 2 ein Hash von Position zu Wort. Ein optionaler zweiter Parameter nennt zusätzliche Zeichen, die als Buchstaben gelten.

ParameterTypErforderlichStandardwert
formatinteger (0, 1 oder 2)nein0
charactersstringneinkeiner

Generierte Referenz: str_word_count.

str_getcsv

PHP str_getcsv(): eine CSV-Zeile als Array. Das Escape-Zeichen ist standardmäßig '' (keines), was die in PHP 8.4 als veraltet markierte alte Voreinstellung vermeidet.

ParameterTypErforderlichStandardwert
separatorstringnein,
enclosurestringnein"
escapestringnein''

Generierte Referenz: str_getcsv.

strtok

PHP strtok( input, token ): das erste Token. Weil jeder Operatoraufruf einen neuen Durchlauf von strtok() beginnt, kann ein Template nur das erste Stück erhalten; verwenden Sie für alle Stücke explode. Parameter: token (string, erforderlich). Generierte Referenz: strtok.

'abcdefg'|str_split( 3 ) = {'abcdefg'|str_split( 3 )|implode( ' | ' )}
'one two three'|str_word_count = {'one two three'|str_word_count}
'one two three'|str_word_count( 1 ) = {'one two three'|str_word_count( 1 )|implode( ',' )}
'a,"b,c",d'|str_getcsv = {'a,"b,c",d'|str_getcsv|implode( ' | ' )}
'a;b;c'|str_getcsv( ';' ) = {'a;b;c'|str_getcsv( ';' )|implode( ' | ' )}
'first second third'|strtok( ' ' ) = {'first second third'|strtok( ' ' )}

Ausgabe:

'abcdefg'|str_split( 3 ) = abc | def | g
'one two three'|str_word_count = 3
'one two three'|str_word_count( 1 ) = one,two,three
'a,"b,c",d'|str_getcsv = a | b,c | d
'a;b;c'|str_getcsv( ';' ) = a | b | c
'first second third'|strtok( ' ' ) = first

Ränder und Schreibung: ltrim, rtrim, lcfirst und chunk_split

ltrim und rtrim

PHP ltrim() und rtrim(): Leerraum oder die angegebenen Zeichen am linken oder am rechten Ende entfernt. Parameter: characters (string, optional). Generierte Referenzen: ltrim, rtrim. Beide Enden auf einmal: trim.

lcfirst

PHP lcfirst(): das erste Byte als Kleinbuchstabe. Keine Parameter. Generierte Referenz: lcfirst.

chunk_split

PHP chunk_split(): fügt die Endzeichenkette nach jedem Stück ein (standardmäßig 76 Bytes und "\r\n"), auch nach dem letzten.

ParameterTypErforderlichStandardwert
lengthintegernein76 wie in PHP
separatorstringnein"\r\n" wie in PHP

Generierte Referenz: chunk_split.

[{'--slug--'|ltrim( '-' )}] [{'--slug--'|rtrim( '-' )}] [{'  both  '|ltrim}]
'Healthy'|lcfirst = {'Healthy'|lcfirst}
'abcdefgh'|chunk_split( 3, '-' ) = {'abcdefgh'|chunk_split( 3, '-' )}

Ausgabe:

[slug--] [--slug] [both  ]
'Healthy'|lcfirst = healthy
'abcdefgh'|chunk_split( 3, '-' ) = abc-def-gh-

Backslashes: addslashes, stripslashes, addcslashes, stripcslashes und quotemeta

OperatorPHP-FunktionParameter
addslashesaddslashes(): Backslash vor ', ", \ und NULkeine
stripslashesstripslashes()keine
addcslashesaddcslashes(): Backslash vor den Zeichen einer Liste (Bereiche wie A..Z erlaubt)characters (erforderlich)
stripcslashesstripcslashes(): Escape-Folgen im C-Stil wie \t werden zu den Zeichenkeine
quotemetaquotemeta(): Backslash vor . \ + * ? [ ^ ] $ ( )keine

Keiner davon ist eine Maskierung für HTML- oder JavaScript-Ausgabe; verwenden Sie dafür wash (Zeichenketten-Operatoren). Generierte Referenzen: addslashes, stripslashes, addcslashes, stripcslashes, quotemeta.

Im Template-Quelltext wird ein Anführungszeichen innerhalb einer Zeichenkette in einfachen Anführungszeichen als \' geschrieben und ein Backslash als \\:

'It\'s "fit"'|addslashes = {'It\'s "fit"'|addslashes}
'It\\\'s'|stripslashes = {'It\\\'s'|stripslashes}
'FOO[bar]'|addcslashes( 'A..Z' ) = {'FOO[bar]'|addcslashes( 'A..Z' )}
'a\\tb'|stripcslashes|bin2hex = {'a\\tb'|stripcslashes|bin2hex}
'1+1=2?'|quotemeta = {'1+1=2?'|quotemeta}

Ausgabe:

'It\'s "fit"'|addslashes = It\'s \"fit\"
'It\\\'s'|stripslashes = It's
'FOO[bar]'|addcslashes( 'A..Z' ) = \F\O\O[bar]
'a\\tb'|stripcslashes|bin2hex = 610962
'1+1=2?'|quotemeta = 1\+1=2\?

strip_tags und die Registrierungsfalle

strip_tags

PHP strip_tags(): entfernt HTML- und PHP-Tags. In eZTemplateStringsOperator nennt ein optionaler Parameter die Tags, die erhalten bleiben sollen (eine Zeichenkette wie '<b><i>' oder ein Array von Namen).

ParameterTypErforderlichStandardwert
erlaubte Tagsstring oder arrayneinkeiner

Gibt eine Zeichenkette zurück. strip_tags ist kein Bereinigungswerkzeug: Es behält die Attribute erlaubter Tags und maskiert & nicht. Bereinigen Sie das Ergebnis mit wash, bevor Sie es ausgeben. Generierte Referenz: strip_tags.

{def $html = '<p>Fit <b>and</b> <a href="/x">healthy</a></p>'}
strip_tags = {$html|strip_tags}

Ausgabe:

strip_tags = Fit and healthy

Die Registrierungsfalle. Auf einer Entwicklungsinstallation fügt die Erweiterung ezmultiupload PHPOperatorList[strip_tags]=strip_tags zu template.ini hinzu (extension/ezmultiupload/settings/template.ini.append.php). Die Datei kernel/common/eztemplateautoload.php des Kernels registriert die Namen aus PHPOperatorList über eZTemplatePHPOperator, das der PHP-Funktion nur einen Wert übergibt; diese Fassung ignoriert also die erlaubten Tags. Welche der beiden Klassen antwortet, hängt davon ab, was die Anfrage vorher verwendet hat: Die Template-Engine lädt Operatorklassen verzögert, und wird zuerst irgendein Operator von eZTemplateStringsOperator verwendet (hier strlen), registriert das Laden dieser Klasse alle ihre Namen erneut, einschließlich strip_tags, und ab dann antwortet die Fassung mit Parametern. Dieselbe Template-Zeile liefert zwei Ergebnisse:

{def $html = '<p>Fit <b>and</b> healthy</p>'}
first use: [{$html|strip_tags( '<b>' )}]

{def $len = 'x'|strlen}
after strlen: [{$html|strip_tags( '<b>' )}]

Ausgabe:

first use: [Fit and healthy]
after strlen: [Fit <b>and</b> healthy]

Wenn Sie die erlaubten Tags brauchen, verlassen Sie sich auf keine der beiden: Entfernen Sie alle Tags und fügen Sie das Markup im Template hinzu, oder registrieren Sie einen eigenen Operator unter einem anderen Namen (Registrierungsreihenfolge und Überschreibungen).

str_shuffle und hebrev

str_shuffle

PHP str_shuffle(): die Bytes in zufälliger Reihenfolge (nicht für Geheimes geeignet). Keine Parameter. Generierte Referenz: str_shuffle.

hebrev

PHP hebrev(): wandelt logischen hebräischen Text in visuellen Text um, mit einer optionalen Höchstzahl von Zeichen je Zeile (integer). Text ohne hebräische Zeichen wird unverändert zurückgegeben. Generierte Referenz: hebrev.

{def $s = 'abcdef'|str_shuffle}
str_shuffle keeps the letters: {$s|str_split( 1 )|unique|count} distinct letters, length {$s|strlen}
hebrev of a Latin text returns it unchanged: {'plain text'|hebrev}

Ausgabe:

str_shuffle keeps the letters: 6 distinct letters, length 6
hebrev of a Latin text returns it unchanged: plain text

str_increment und str_decrement

Die Klasse nimmt str_increment und str_decrement (PHP 8.3) in ihre Operatorliste auf, wenn PHP sie hat, aber sie stehen nicht in der Liste operator_names von lib/eztemplate/classes/eztemplateautoload.php. Wie bei der Falle oben existieren sie also erst, nachdem ein anderer Operator der Klasse sie geladen hat. Für sich allein meldet die Engine sie als nicht registriert:

[{'a9'|str_increment}]

Ausgabe:

[a9]

Von der Template-Engine protokolliert:

WARNING : Operator 'str_increment' is not registered

Nachdem strlen die Klasse geladen hat:

{def $len = 'x'|strlen}
'a9'|str_increment = {'a9'|str_increment}
'Ab'|str_decrement = {'Ab'|str_decrement}

Ausgabe:

'a9'|str_increment = b0
'Ab'|str_decrement = Aa

Verlassen Sie sich in einem Template, das überall funktionieren muss, nicht auf sie.

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