Ergebnis 1 bis 3 von 3

Thema: Umlaute nach dem Auslesen aus einem array

  1. #1
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.858
    Contao-Projekt unterstützen

    Support Contao

    Standard Umlaute nach dem Auslesen aus einem array

    Hallo,

    ich hänge hier an einem php-Thema, dem ich nicht ankann. Hoffe ihr könnt mir weiterhelfen.

    Rocksolid Custom Elements
    inputType = text

    Ausgabe via template:
    PHP-Code:
    <?php
        $str 
    strlen($this->text);
        
    $GLOBALS['TL_HEAD'][] = '<style>
                                .textanimated.textanimated-white{color:#fff;}
                                .textanimated span{font-size:4em;font-weight:900;display:inline-block;animation:animo 3s ease-in-out infinite;letter-spacing:0.2em;}
                                @keyframes animo{0%{transform:translate(-0%,0);}50%{text-shadow:0 0 25px rgba(0,0,0,.15);}100%{transform:translate(0%,0);}}
                                </style>'
    ;

    ?>



    <div class="textanimated textanimated-white">

        <?php 
            
    echo $this->text// zeigt ü ö ä korrekt an
            
    for($i=0$i $str$i++) {
            
    $s=$$s++;
            $
    $s=$s+0.5;
            echo 
    '<span style="animation-delay:' . $$s 's">'  str_replace(' ','&nbsp;',(utf8_encode($this->text[$i]))) . '</span>'// auch ohne 'utf8_encode()' keine Anzeige von ü ö ä
            
    }  
        
    ?>

    </div>
    (utf8_encode($this->text[$i])) ... für
    (($this->text[$i])) ... f??r
    echo $this->text; ... für

    » im <head>: <meta charset="utf-8">
    » die Datei ist mit UTF-8 gespeichert

    Vielen Dank für die Hilfestellung
    Grüsse
    Bernhard


  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.063
    Partner-ID
    10107

    Standard

    Das passiert, weil du auf einen String mit Array Access zugreifst - und daher auf die einzelnen Bytes. Ein UTF-8 Sonderzeichen besteht aber aus mehreren Bytes. In neuen PHP Versionen ist das ohnehin nicht mehr erlaubt. Nimm stattdessen substr.

  3. #3
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.858
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Vielen Dank!

    mb_substr() hat nun auch mein erwünschtes Ergebnis gebracht
    PHP-Code:

    <?php
    $GLOBALS
    ['TL_HEAD'][] = '<style>
                            .textanimated.textanimated-white{color:#fff;}
                            .textanimated{text-transform:uppe rcase;}
                            .textanimated span{font-size:4em;font-weight:900;display:inline-block;animation:animo 3s ease-in-out infinite;letter-spacing:0.2em;}
                            @keyframes animo{0%{transform:translate(-0%,0);}50%{text-shadow:0 0 25px rgba(0,0,0,.15);}100%{transform:translate(0%,0);}}
                            </style>'
    ;

    ?>

    <div class="textanimated textanimated-white">

    <?php 
        $str 
    strlen($this->text);
        
        for(
    $i=0$i $str$i++) {
            
    $s=$$s++;
            $
    $s=$s+0.5;
            echo 
    '<span style="animation-delay:' . $$s 's">'  str_replace(' ','&nbsp;',mb_substr(($this->text),$i,1)) . '</span>';
        }  
    ?>

    </div>
    Grüsse
    Bernhard


Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •