Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:about:functions:split

Dies ist eine alte Version des Dokuments!


split

Mit split lassen sich Strings anhand frei wählbarer Trennzeichen in ein Array umwandeln, dessen Werte anschließend mit optionSplit und stdWrap weiterverarbeitet werden können. Typisches Szenario ist eine kommaseparierte Liste.

Die erhaltenen Werte werden mit cObjNum einem (oder mehreren) cObj zugewiesen. Mithilfe von current wird der aktuelle Wert übergeben. TYPO3 speichert die Ergebnisse von split im Register SPLIT_COUNT.

Eigenschaften von split

EigenschaftDatentypBeschreibung
tokenstring / stdWrapDer Wert dient als Trennzeichen zwischen den einzelnen Werten und kann ein einzelnes Zeichen oder eine Zeichenkette sein. Mit stdWrap.char lassen sich die Dezimalwerte der ASCII-Zeichen verwenden.
10 = TEXT
10.value = eins,zwei,drei
10.split.token = ,
[...]
 
10.value = einsSTOPzweiSTOPdrei
10.split.token = STOP
[...]
 
# 'char = 10' bedeutet einen Zeilenumbruch im ASCII-Code
10 = TEXT
10.value (
  eins
  zwei
  drei
)
10.split.token.char = 10
[...]
maxinteger / stdWrapGibt die maximale Anzahl der ausgegebenen Werte an.
10 = TEXT
10.value = eins,zwei,drei,vier,fünf,sechs
10.split {
  token = ,
  cObjNum = 1
  max = 3
  1.current = 1
  1.wrap = |+
}
# Ausgabe: eins+zwei+drei+
mininteger / stdWrapGibt die Mindestanzahl der ausgegebenen Werte an. Dies bedeutet nicht, dass bei weniger Werten keine Ausgabe erfolgt, sondern, dass bei zu wenig Werten die Anweisungen im cObj trotzdem durchgeführt werden! Die Angaben in min haben Vorzug vor max.
10 = TEXT
10.value = eins,zwei,drei,vier,fünf,sechs
10.split {
  token = ,
  cObjNum = 1
  min = 9
  1.current = 1
  1.wrap = |+
}
# Ausgabe: eins+zwei+drei+vier+fünf+sechs++++
returnKeyinteger / stdWrapWenn diese Eigenschaft benutzt wird, werden nicht alle Werte nacheinander geparst, sondern nur der hier angegebene Wert direkt ausgegeben. cObjNum und ggf. definierte cObjects haben in dem Fall keinerlei Auswirkung und können daher entfallen.
10 = TEXT
10.value = eins,zwei,drei,vier,fünf,sechs
10.split {
  token = ,
  returnKey = 0
}
# Ausgabe: eins
cObjNumcObjNum +optionSplit / stdWrap
1,2,3,4CARRAY / stdWrapDie Objekte, mit denen die Werte verarbeitet werden; müssen unter cObjNum definiert worden sein. Da sie vom Typ CARRAY sind, müssen sie nicht noch einmal als cObject erzeugt werden (1 = TEXT), sondern können direkt mit stdWrap bearbeitet werden. Es ist möglich, Unterobjekte anzuwenden, die dann als cObject erzeugt werden müssen (1.10 = TEXT).
10 = TEXT
10.value = eins,zwei,drei,vier
10.split {
  token = ,
  cObjNum = 1
  1.10 = TEXT
  1.10.current = 1
  1.20 = TEXT
  1.20.value = und
  1.20.noTrimWrap = | | |
}
# Ausgabe: eins und zwei und drei und vier und
wrapwrap +optionSplit / stdWrapUmschließt die fertigen cObjects mit einem Wrap. Das Anwenden von optionSplit ist möglich.
10 = TEXT
10.value = eins,zwei,drei,vier
10.split {
  token = ,
  cObjNum = 1
  1.current = 1
  wrap = |*| <h1>|</h1>||<p>|</p>|*|
}
# Ausgabe: <h1>eins</h1><p>zwei</p><h1>drei</h1><p>vier</p>

Beispiele

10 = TEXT
10.value = eins,zwei,drei,vier,fünf
10.split { 
  token = ,
  cObjNum = 1
  1.current = 1
  1.wrap = |<br>
}

Ergebnis:

eins<br>
zwei<br>
drei<br>
vier<br>
fünf<br>

split mit optionSplit

Eine genaue Beschreibung von optionSplit findet sich hier. Damit lassen sich einzelne Werte auf unterschiedliche Art weiterverarbeiten. Der optionSplit wird bei cObjNum angewendet, die darin enthaltenen Nummern lassen sich als cObjects mit stdWrap-Funktionen modifizieren. Hierzu muss der aktuelle Wert mit current geladen werden.

Alternativ kann auch ein eigener Wert mit value, data oder ähnlichem verwendet werden, um die geladenen Werte zu überschreiben oder zu ergänzen. Es können nur cObjects verwendet werden, die unter cObjNum definiert wurden. Unterobjekte sind aber möglich (1.10, 1.20, …).

10 = TEXT
10.value = eins+zwei+drei+vier+fünf
10.split {
  token = +
  cObjNum = 1 |*| 2 |*| 3
  1.current = 1
  1.wrap = <span style="color:red">|,</span>
  2.current = 1
  2.wrap = <span style="color:orange">|,</span>
  3.10 = TEXT
  3.10.current = 1
  3.10.wrap = <span style="color:blue">|,</span>
  3.20 = TEXT
  3.20.value = sechs
  3.20.wrap = <span style="color:green">|</span>
} 

<html> Ergebnis: eins,zwei,drei,vier,fünf,sechs </html>

typo3/about/functions/split.1394138085.txt.gz · Zuletzt geändert: 2015/12/03 19:30 (Externe Bearbeitung)