Zeichenketten¶
StringType¶
Die Zeichenketten-Klasse \Alvine\Types\StringType
bringt die benötigte Unterstüzung
für UTF-8 mit und stellt nützliche Methoden zur Bearbeitung von UTF-8 Zeichenketten
zur Verfügung.
Hinweis
Die Klasse hieß in einer früheren Version \Alvine\Types\String
. Mit der Einführung
des Schlüsselwortes string
in PHP wurde die Klasse umbenannt.
Die Klasse ist auf die Verwendung der Multi-Byte Erweiterung mb_string
zugeschnitten.
$string = new \Alvine\Core\StringType();
$string->string='Ich esse gerne Äpfel'; // Inhalt setzen
echo $string; // Gibt folgendes aus: Ich esse gerne Äpfel
Wie in dem obigen Beispiel zu sehen, kann der Zugriff auf den gespeicherten Wert
auch über die Eigenschaft string
erfolgen.
Da für ein UTF-8 Zeichen eine unterschiedliche Anzahl von Bytes benutzt wird, ist die Länge einer Zeichenkette ungleich der Anzahl der Bytes die eine Zeichenkette belegt.
Mit der Methode \Alvine\Types\StringType::bytes()
kann die Anzahl der Bytes ermittelt werden und mit
der Methode \Alvine\Types\StringType::length()
wird die Anzahl der Zeichen ermittelt.
Die Zeichenkette Iñtërnâtiônàlizætiøn
hat 20 Zeichen, belegt allerdings 27 Bytes im Speicher.
$string=new \Alvine\Types\StringType('Iñtërnâtiônàlizætiøn');
echo $string->length();
// → 20
echo $string->bytes();
// → 27
Über die Methode \Alvine\Types\StringType::setEncoding()
kann das Ausgabeformat für die Zeichenkette
gesetzt werden.
$string=new \Alvine\Types\StringType('Iñtërnâtiônàlizætiøn');
echo (string) $string;
// → Iñtërnâtiônàlizætiøn
$string->setEncoding(\Alvine\I18n\Encoding::HTML_ENTITIES);
echo (string) $string;
// → Iñtërnâtiônàlizætiøn
Die Methode \Alvine\Types\StringType::toLowerCase()
bzw. \Alvine\Types\StringType::toUpperCase()
wandeln die Groß- und Kleinschreibung um.
Mit der Methode \Alvine\Types\StringType::trim()
können Leerzeichen am Anfang und Ende der Zeichenkette
entfernt werden. Wird ein Zeichen übergeben \Alvine\Types\StringType::trim('a')
, so wird dieses, anstatt
von Leerzeichen entfernt. Mit der Methode \Alvine\Types\StringType::isEmpty()
wird geprüft ob eine Zeichekette
leer ist.
Mit Hilfe der Methode \Alvine\Types\StringType::getLines()
kann ein mehrzeilige Zeichenkette
in einzelne Zeilen getrennt werden. Der Rückgabewert dieser Methode ist ein Objekt vom Typ \Alvine\Types\StringList
$string=new \Alvine\Types\StringType('
1. Zeile
2. Zeile
3. Zeile
');
$lines=$string->getLines();
foreach($lines AS $line) {
echo '|'.$line."|\n";
}
Das Ergbnis ist in diesem Fall folgende Ausgabe.
e86a74ef-0d82-4366-d142-783277b9f2c8
Die erste Zeile der Ausgabe zeigt, dass die Eingabe mit einem Zeilenumbruch beginnt.
Soll statt ein Zeilenumbruch ein anderes Trennzeichen Anwendung finden, so kann die
Methode \Alvine\Types\StringType::explode($delimiter)
verwendet werden.
Die Hilfsfunktion \Alvine\Types\StringType::getHtmlEntities()
kann
die Zeichenkette in HTML Entities codiert werden. Der Rückgabewert ist die umgewandelte Zeichenkette.
Mit der Methode \Alvine\Types\StringType::append($string)
lässt sich eine Zeichenkette
anhängen. Der Parameter $string
kann entweder eine PHP-Zeichenkette oder ein Objekt vom Typ
\Alvine\Types\StringType
sein.
Durch \Alvine\Types\StringType::indexOf($string, $offset)
lässt sich das erste Auftreten des Zeichen
oder der Zeichenkette string
ermitteln. Das Ergebnis ist identisch zu mb_strpos
. Für die Suche des
letzten Auftretens kann die Methode \Alvine\Types\StringType::lastIndexOf($string, $offset)
zum Einsatz kommen.
\Alvine\Types\StringType::getSubstring($start, $length)
liefert eine Teilzeichenkette zurück.
Mit Hilfe von \Alvine\Types\StringType::replace($pattern, $replacement)
kann eine Teilzeichenkette
ersetzt werden.
\Alvine\Types\StringType::contains($string)
und \Alvine\Types\StringType::match($pattern)
suchen nach dem
Parameter und geben true
bzw. false
zurück. Match
verwendet für den Vergleich mb_ereg
und contains
verwendet indexOf
.
Um Zeichenketten vergleichen zu können, steht die Methode \Alvine\Types\StringType::compareTo($string)
zur
Verfügung.
Die statische Methode \Alvine\Types\StringType::encode($string, $encoding)
erlaubt die Konvertierung einer Zeichenkette
in ein anderes Format.
StringList¶
Die Klasse \Alvine\Types\StringList
stellt eine Sammlung von Zeichenketten des Type \Alvine\Types\StringType
bereit. Die Klasse implementiert die Standard-Interfaces \Iterator
, \ArrayAccess
und \Countable
.
Character¶
Die Klasse \Alvine\Types\Character
stellt Methoden und Konstanten zur Behandlung von Zeichen
zur Verfügung.
Die Methode \Alvine\Types\Character::isUpperCase()
prüft ob ein Zeichen ein Großbuchstabe ist.
A
ergibttrue
a
ergibtfalse
?
ergibtfalse
, da es kein Großbuchstabe ist
Die Methode \Alvine\Types\Character::isLowerCase()
prüft ob ein Zeichen ein Kleinbuchstabe ist.
A
ergibtfalse
a
ergibttrue
?
ergibtfalse
, da es kein Kleinbuchstabe ist
Die Methode \Alvine\Types\Character::isWhitespace()
prüft ob ein Zeichen ein Leerzeichen ist.
Die Methode \Alvine\Types\Character::fromChar()
gibt den Code eines UTF-8 Zeichens zurück.
Die Methode \Alvine\Types\Character::fromInteger()
ist das Gegenstück und wandelt einen Code in das
entsprechende UTF-8 Zeichens um.
Die Methode \Alvine\Types\Character::toLower()
bzw. \Alvine\Types\Character::toIpper()
wandelt ein Zeichen
in die entsprechende Schreibweise.
Die Methode \Alvine\Types\Character::getLineFeeds()
gibt eine Array mit allen in UTF-8
definierten Zeilenumbrüchen zurück.
ASCII¶
Die Klasse \Alvine\Types\ASCII
stellt für bestimme ASCII Sonderzeichen Konstante zur Verfügung.
Für das LineFeed-Zeichen steht zum Beispiel die Konstante \Alvine\Types\ASCII::LF
zur Verfügung.
Der Wert der Konstante ist in diesem Fall 10
.
Zeichen | ASCII | Beschreibung |
---|---|---|
NULL | 0 | |
SOH | 1 | Dokumentenkopf |
STX | 2 | Textanfang |
ETX | 3 | Textende |
EOT | 4 | |
ENQ | 5 | |
ACK | 6 | Bestätigung |
BEL | 7 | Klingel |
BS | 8 | Backspace |
TAB | 9 | |
LF | 10 | Line Feed |
VT | 11 | |
FF | 12 | |
CR | 13 | Wagenrücklauf |
SO | 14 | |
SI | 15 | |
DLE | 16 | |
DC1 | 17 | |
DC2 | 18 | |
DC3 | 19 | |
DC3 | 20 | |
NAK | 21 | |
SYN | 22 | |
ETB | 23 | |
CAN | 24 | |
EM | 25 | |
SUB | 26 | |
ESC | 27 | Escape |
FS | 28 | |
GS | 29 | Gruppentrenner |
RS | 30 | |
US | 31 | Einheitstrenner |
SP | 32 | Leerzeichen |
DEL | 127 | |
CSI | 155 | Control Sequenz Introducer |