dedlfix: apostrophe func. in php?

Beitrag lesen

echo $begrüßung;

Soviel zum nutzen der Function. Die Function kehrt die Zeichen des Wortes einfach um und vergleicht das erste Zeichen, welches jeweils den Index 0 hat.

Keine ganz schlechte Idee, es gibt aber eine bessere Lösung: substr($string, $start) mit einem negativem Wert für $start ausführen und das Ergebnis mit der gewünschten Zeichenkette vergleichen. Das liest sich als Code auch intuitiver als deine Variante, finde ich.

Ein Problem war, wie ich das ß behandeln sollte. Intern verwaltet PHP soweit ich gelesen habe das ß als zwei Zeichen

PHP kann derzeit noch gar nicht richtig mit UTF-8 umgehen. Das wird es erst ab Version 6 können. Da viele Zeichen in UTF-8 mit mehr als einem Byte kodiert werden gibt es nun Schwierigkeiten mit PHP, das derzeit von der Formel "1 Zeichen = 1 Byte" ausgeht.

elseif(stripos(strrev($name), 's') === 0 && stripos(strrev($name), 's') === 1)

Diese Bedingungen wird nie wahr, da bei beiden stripos-Aufrufen das s an Postion 0 gefunden wird.

return $name.''';

Ich halte es für keine gute Idee, dass diese Funktion bereits ein HTML-spezifisches Ergebnis zurückliefert, denn damit ist sie nicht mehr universell verwendbar. Gib ein echtes ' zurück und behandle es erst dann kontextspezifisch, wenn String in den neuen Kontext übergeben wird.

Um das Problem mit der unterschiedlichen Byte-Länge der Zeichen zu beseitigen, kannst du die Länge des Zeichens zur Laufzeit ermitteln (strlen('ß')) und diesen Wert dem substr() übergeben. Das setzt voraus, dass dein PHP-Quelltext ebenfalls UTF-8-kodiert ist. So bleibt die Funktion auch PHP-6-kompatibel. Unter PHP 5 und 4 ist die Länge 2, unter PHP 6 ist sie 1, substr() schnippelt korrekt und der Vergleich wird auch passen.

Eine ganz schlechte Idee wäre utf8decode() zu verwenden, denn dabei geht dir der Vorteil von UTF-8 verloren.

echo "$verabschiedung $name";