Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Umlauten bei substr();

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit Umlauten bei substr();

    Hallo,
    ich lese Datensätze aus meiner DB aus und lasse davon nur die ersten 200 Zeichen mittels substr($meintext, 0, 200); ausgeben.

    Die Umlaute in werden in meiner DB wie folgt gespeichert: ü ä ....

    Wenn jetzt zufälligerweise genau an der 200. Stelle meines Datensatzes ein solcher Umlaut steht, dann sieht der Ausgabetext z.B. so aus: "...bla bla bla &au".

    Kann ich das irgendwie umgehen? Kann ich es irgendwie erreichen, dass die Umlaute komplett angezeigt werden?

    Danke

  • #2
    Ob es für sowas eine Funktion gibt weiß ich nicht, aber was möglich wäre:
    - explode und dann einfach die ersten 20 Wörter
    - substr mit 10 Zeichen mehr und dann eine Stelle raussuchen wo gerade kein Umlaut drinn ist


    Wenn du auch noch HTML zur Formatierung hast dann wirds komplizierter, weil die Tags dann auch noch korrekt geschlossen werden müssen.

    Grüße
    Signatur:
    PHP-Code:
    $s '0048656c6c6f20576f726c64';
    while(
    $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

    Kommentar


    • #3
      Die Umlaute in werden in meiner DB wie folgt gespeichert: ü ä ....
      Darin liegt der Fehler. Entities haben in der Datenbabnk nichts zu suchen. Sie machen nur im Kontext XML/HTML Sinn.
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar


      • #4
        Speicher die Text in Original in der Datenbank und wende beim auslesen dann htmlentities() an!

        Kommentar


        • #5
          Ok, dann hab ich auch mal ne Frage: Nehmen wir an, dass der Code HTML enthält, wie macht man es dann da, dass am Ende immer noch valides HTML rauskommt ?
          Signatur:
          PHP-Code:
          $s '0048656c6c6f20576f726c64';
          while(
          $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

          Kommentar


          • #6
            Sinnvoll kann man das IMHO nur auf DOM-Ebene lösen.
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #7
              Hi,
              vielen Dank soweit.

              ich habe es dann mal so gelöst:
              PHP-Code:
              $dertext    explode(" "$myentry);
                                                  
              $laenge 200;
                                                  
              $j 0;
                                                  while(
              $laenge>=&& isset($dertext[$j])) {
                                                      echo(
              $dertext[$j]." ");
                                                      
                                                      
              $laenge $laenge-strlen($dertext[$j]);
                                                      
              $j++;
                                                  } 
              Ist wahrscheinlich der sauberste Code. Aber es funktioniert einwandfrei.

              PS: Der Text enthält keine html Elemente.

              Danke

              Kommentar

              Lädt...
              X