Gunnar Bittersmann: Silbentrennung in der Datenbank (unsichtbarer Zwischenraum)

Beitrag lesen

@@Linuchs:

nuqneH

Die Daten sollten hinsichtlich späterer Verwendung agnostisch sein. Möglicherweise braucht man die Daten ja auch für andere Zwecke als sie in den HTML-Kontext zu bringen.
Vollkommen einverstanden. Nur wie stelle ich ein Zeichen in den Text, das nur für HTML gebraucht wird?

?? (Ein)verständnis sieht für mich anders aus.

Es muss auf jeden Fall in der Datenbank "sichtbar" sein.

?? _In_ der Datenbank ist nichts sichtbar. Es wird sichtbar, wenn du es aus der Datenbank rausholst. Kannst du es dann durch htmlentities() jagen?

Um voranzukommen, nehme ich bei Eingabe und Speicherung in die DB das Zeichen | gemeinsam auf der Taste < > also In|for|ma|tions|ver|an|stal|tung

Blöd ist, dass diese "Steuerzeichen" nun 7 Zeichen vom Text wegnehmen, der für eine Überschrift natürlich begrenzt ist.

Natürlich. Das tun 7 U+00AD SOFT HYPHEN genauso.

str_replace( "|", "&shy;", $row_trm['titel'] )

Keine Ahnung, wie man dieses Zeichen codiert.
str_replace( "|", "&#00AD;", $row_trm['titel'] )

Hexadezimal: &#xAD; (Die führenden Nullen braucht man nicht.)
              ▲

Für den HTML-Parser ist &shy; aber dasselbe wie &#xAD;. Für einen menschlichen Quellcode-Leser ist aber ersteres besser verständlich.

Sinnvoller wäre es aber sicher, VOR dem Schreiben in die Datenbank '|' durch U+00AD SOFT HYPHEN (nicht durch HTML-Escapes) zu ersetzen.

str_replace( "|", "\xAD;", $row_trm['titel'] )

http://php.net/manual/de/regexp.reference.escape.php

Qapla'

--
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)