nic: Nach jedem Zeichen ein Leerzeichen einfügen

Hallo,

wie kann ich zum Beispiel aus "Text" das hier machen: "T e x t".

Also nach jedem Zeichen ein Leerzeichen einfügen?

Danke

  1. 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

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. chunk_split('Text', 1, ' ')

      Danke dir!

    2. 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

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. 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

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. 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

          --
          ><o(((°>           ><o(((°>
             <°)))o><                     ><o(((°>o
          Der Valigator leibt diese Fische
  2. 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

    --
    Es gibt Tage, da gelingt einem einfach alles.
    Aber das ist kein Grund zur Sorge; das geht vorbei.
    1. 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

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
    2. @@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'

      --
      Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)