Stringverarbeitung in PHP

Aus Vokabulabor
Version vom 29. Oktober 2023, 10:51 Uhr von Hamatoma (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „* Kategorie:Tutorial * Kategorie:Programmierung * Kategorie:PHP = Links = * PHP * PHP-Funktionen * PHP-Anweisungen * PHP-Arrays * PHP-Klassen * Stringverarbeitung in PHP = Zielsetzung = Strings sind Zeichenketten. Ein ganz wesentlicher Teil von Programmierung ist das Arbeiten mit Strings: * Strings umwandeln * Suchen in Strings * Eigenschaften von Strings ermitteln. = Stringkonstanten = In PHP gibt es drei Möglichk…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Links

Zielsetzung

Strings sind Zeichenketten.

Ein ganz wesentlicher Teil von Programmierung ist das Arbeiten mit Strings:

  • Strings umwandeln
  • Suchen in Strings
  • Eigenschaften von Strings ermitteln.

Stringkonstanten

In PHP gibt es drei Möglichkeiten, Stringkonstanten zu definieren:

<?php
$a = 'Hello';</code>
$b = "$a World\n";
$c = <<<EOS
<html>
<body>
<h1>$b</h1>
</body>
</html>
EOS;
  • $a = 'Hello';: die Stringkonstante mit Ticks ' wird nicht interpoliert: Variablen werden nicht erkannt, Metazeichen wie '\n' werden nicht erkannt.
  • $b = "$a World\n";: die Stringkonstante mit doppeltem Appostroph wird interpoliert: Variablen werden durch ihren Wert ersetzt, Metazeichen wie '\n' werden ersetzt.
  • $c = <<<EOS ... EOS;: Diese Form wird "Here-Document" genannt:
    • Der String beginnt mit "<<<" und einem Namen wie EOS.
    • Es folgen Zeilen, die zum String gehören.
    • Am Ende steht der obige Name (z.B. "EOS") und ein ';'
    • Diese Form wird eingesetzt, wenn viele Zeilen in einem String vorkommen.
    • Dieser String wird interpoliert: Variablen werden durch ihren Wert ersetzt, Metazeichen wie '\n' werden ersetzt.

Wichtige Funktionen mit String

Stringlänge ermitteln und Teilstrings bilden: strlen() und substr()

<?php
$a = "Hello world!";
// function strlen(string $string): int zählt die Anzahl der Zeichen in $string
echo 'Länge von $a": ', strlen($a), "\n"; 
// function  substr(string $string, int $offset, ?int $length = null): string schneidet $length Zeichen ab $offset aus $string:
echo 'substr($a, 3, 2): ', substr($a, 3, 2), "\n";
// $count kann weggelassen werden: dann wird der Rest genommen:
echo 'substr($a, 3, 2): ', substr($a, 5), "\n";
EOS;

Aufgaben

  • Schreibe eine Funktion maxString(string $string, int $maxLength), die $string zurückgibt, wenn der String kürzer als $maxLength ist, sonst nur die ersten $maxLength Zeichen.
  • Schreibe eine Funktion lastChar(string $string), die das letzte Zeichen zurückgibt oder "", wenn $string leer ist.

Suche mit strpos() und strrpos()

<?php
$a = "Hello world!";
// function strpos(string $haystack, string $needle, int $offset=0) liefert den Index des ersten Treffers nach dem Offset $offset
echo 'strpos($a, "l", 4): ', strpos($a, "l", 4), "\n";
// $offset kann weggelassen werden: dann ist $offset 0:
echo 'strpos($a, "l", 4): ', strpos($a, "l"), "\n";
// function strrpos(string $haystack, string $needle, int $offset=0) liefert den letzten Treffer v
echo 'strrpos($a, "l"): ', strrpos($a, "l"), "\n";
if (strpos($a, 'world') !== false){
  echo '$a enthält "world"', "\n";
} else {
  echo '$a enthält NICHT "world"', "\n";
}

Aufgaben

Umwandeln in oder aus Array: explode() und implode()

<?php
$a = "Dies ist ein Satz mit mehreren Wörtern";
// function explode(string $separator, string $string, int $limit = PHP_INT_MAX): array Zerlegt einen String in ein Array.
$words = explode(' ', $a);
foreach ($words as $w){
  echo $w, "\n";
}
echo 'Das erste und das letzte Wort: ', words[0], ' / ', words[count(words) - 1], "\n";
// function implode(string $separator, array $array): string: Setzt einen String aus einem Array zusammen:
echo implode('-'', $words), "\n";