Nach jedem Zeichen ein Leerzeichen einfügen
nic
- php
Hallo,
wie kann ich zum Beispiel aus "Text" das hier machen: "T e x t".
Also nach jedem Zeichen ein Leerzeichen einfügen?
Danke
Hi,
wie kann ich zum Beispiel aus "Text" das hier machen: "T e x t".
Also nach jedem Zeichen ein Leerzeichen einfügen?
chunk_split('Text', 1, ' ')
Dann das am Ende folgende Leerzeichen stört - dann halt noch mal rechts trimmen.
MfG ChrisB
chunk_split('Text', 1, ' ')
Danke dir!
Hello,
wie kann ich zum Beispiel aus "Text" das hier machen: "T e x t".
Also nach jedem Zeichen ein Leerzeichen einfügen?
chunk_split('Text', 1, ' ')
Chunk_Spit() funktioniert nur sicher, wenn der Text single-byte-codiert ist.
Da inzwischen aber vornehmlich utf-8 propagiert wird, ist der Rat nicht gut.
Man müsste sich also schon eine etwas aufwändigere Funktion auf der Grundlage von mb_substr() und mb_strlen() schreiben.
http://de3.php.net/manual/en/function.mb-substr.php
http://de3.php.net/manual/en/function.mb-strlen.php
Das Einfachste wird es dann sein, den String in einer Schleife umzukopieren, Zeichen für Zeichen
function insert_into_string($alter_string, $insert, $encoding)
{
$neuer_string = '';
$stop = mb_strlen($alter_string, $encoding) -1;
for ($pos = 1; $pos < $stop; $pos++)
{
$neuer_string .= mb_substr($alter_string, $pos, 1, $encoding) . $insert;
}
$neuer_string .= mb_substr($alter_string, $pos, 1, $encoding);
return $neuer_string;
}
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
Das Einfachste wird es dann sein, den String in einer Schleife umzukopieren, Zeichen für Zeichen
function insert_into_string($alter_string, $insert, $encoding)
{
$neuer_string = '';
$stop = mb_strlen($alter_string, $encoding) -1;
#> for ($pos = 1; $pos < $stop; $pos++)
for ($pos = 0; $pos < $stop; $pos++)
{
$neuer_string .= mb_substr($alter_string, $pos, 1, $encoding) . $insert;
}
$neuer_string .= mb_substr($alter_string, $pos, 1, $encoding);return $neuer_string;
}
Noch keiner gemeckert?
War gerade noch auf Datenbank eingestellt. Aber hier geht's ja bei 0 los :-)
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Das Einfachste wird es dann sein, den String in einer Schleife umzukopieren, Zeichen für Zeichen
...
Noch keiner gemeckert?
War gerade noch auf Datenbank eingestellt. Aber hier geht's ja bei 0 los
Gibt's irgend ein Problem mit utf-8 ?
$str = preg_replace("/(.)/s", "$1 ", $str, -1 );
PS: In Perl ist s///g massiv schneller als split();
Das Gleiche will ich für Php nicht behaupten.
mfg Beat
Hi,
wie kann ich zum Beispiel aus "Text" das hier machen: "T e x t".
brauchst du das für irgendeine spezielle Weiterverarbeitung?
Denn wenn es nur ein visueller Effekt sein soll (man nennt das auch "gesperrte Schrift"), dann wäre es ein Fall für die CSS-Eigenschaft letter-spacing. Das hätte dann auch den Vorteil, dass die so gedehnten Wörter zusammenbleiben und nicht an jeder Fuge getrennt werden können.
So long,
Martin
Hello,
Denn wenn es nur ein visueller Effekt sein soll (man nennt das auch "gesperrte Schrift"), dann wäre es ein Fall für die CSS-Eigenschaft letter-spacing.
Und man müsste sich auch keine Gadanken über die Codierung machen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
@@Der Martin:
nuqneH
Denn wenn es nur ein visueller Effekt sein soll (man nennt das auch "gesperrte Schrift"), dann wäre es ein Fall für die CSS-Eigenschaft letter-spacing. Das hätte dann auch den Vorteil, dass die so gedehnten Wörter zusammenbleiben und nicht an jeder Fuge getrennt werden können.
Was man auch verhindern würde, wenn man nicht normale Leerzeichen U+0020, sondern no-break spaces U+00A0 zwischen die Buchstaben setzt.
Keine (was auch immer für welche) Leerzeichen zwischen die Buchstaben zu setzen hätte auch den Vorteil, dass bei einer Suche nach "Text" ebendies auch gefunden würde, selbst wenn es als "T e x t" erscheint.
Qapla'