umlaute

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

  • umlaute

    Hallo Leute!
    hab schon wieder ein problem und zwar werden die Umlaute
    die ich aus meiner Datenbank auslese nicht richtig interpetiert
    Ich habe dazu eine Funktion geschrieben die die Umlaute richtig setzen soll nur leider stehen die Umlaute immer noch unverändert
    unlesbar da!

    die Funktion:
    Code:
    <?php
    function fix_special_chars($input)
    {
    $array = array(
    '"' => "& quot;" ,
    "&" => "& amp;" ,
    "©" => "& copy;" ,
    "¦" => "& para;" ,
    "ä" => "& auml;" ,
    "Ä" => "& Auml;" ,
    "ö" => "& ouml;" ,
    "Ö" => "& Ouml;" ,
    "ü" => "& uuml;" ,
    "Ü" => "& Uuml;" ,
    "ß" => "& szlig;");
    $output = nl2br ( strtr ($input, $array));
    return( $output );
    }
    ?>
    danach habe ich in einer Suchenabfrage die datei wie folgt eingefügt:
    PHP-Code:
    include "function.php";
    while (
    $row mysql_fetch_assoc($result))
    {
      
    $str $row["ID"]. "<td> " "<A HREF=Aenderung.html?id="
        
    $row["ID"] . ">"$row["vorname"] . "</A>" "   "
        
    $row["nachname"] ." \n ";
      
    $str fix_special_chars($str);
      echo 
    "<td><input type='Radio' name='id' value=",
        
    $row["ID"] . " ";
    }
    mysql_free_result($result); 
    vielleicht seht ihr ja wo der fehler liegt und könnt mir helfen
    mfg

    Gillz

    edit: code und php geklammert, Leerzeichen in die Entities eingefügt, damit die hier nicht interpretiert werden.
    Zuletzt geändert von Titus; 24.04.2002, 10:53.

  • #2
    Hi,

    welches Enität bzw Datentyp hat der entsprechende Feldeintrag?
    Yuppi, endlich Elite ...

    Kommentar


    • #3
      char!?!

      Kommentar


      • #4
        Änder mal auf varchar, text o. s. ?
        Klapps?
        Yuppi, endlich Elite ...

        Kommentar


        • #5
          also ich habs umbenannt aber es hat sich nichts verändert!!

          Gillz

          Kommentar


          • #6
            Statt deines Arrays kannst du auch die Funktion htmlentities benutzen.
            Und: doch, es funktioniert. Schau mal in den (HTML)-Quelltext der Datei!

            Wenn du die Entities im Eingabefeld sichtbar anzeigen willst, mußt du doch dein Array benutzen, aber alles bis aufs '&' zweimal ersetzen. Oder das & weglassen und einmal htmlentities, einmal mit Array. Oder 2x htmlentities und 1x &amp; rückgängig machen.
            also: $output = str_replace ('& amp;', '&', nl2br(htmlentities(htmlentities($input))));
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              Da bekomme ich das zum Beispiel als Ausgabe!
              Stell ich mich jetzt total doof an oder ist das jetzt richtig????
              (eigentlich soll ja nur die ID, Maxi und Müster erscheinen)
              ((in $str befinden sich noch anweisungen für eine tabelle))


              11773&lt;td&gt; &lt;A HREF=Aenderung.html?id=11773&gt;Maxi&lt;/A&gt;&lt;/td&gt;&lt;td&gt; M&uuml;ster&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;

              Gillz

              Kommentar


              • #8
                Original geschrieben von Titus
                Wenn du die Entities im Eingabefeld sichtbar anzeigen willst, ... [/B]
                Wenn nicht:
                $output = nl2br(htmlentities($input));
                nicht mehr und nicht weniger.

                Wenn du dann die Entities nicht als solche im Quelltext der Ausgabe siehst (IE: Ansicht->Quelltext), dann stimmen vielleicht die mygic_quote-Einstellungen in der php.ini nicht.

                Solltest Du magic_quotes_sql haben und das auf On stehen -> ausschalten (Off). Wenn magic_quotes_sql nicht existiert, steht möglicherweise magic_quotes_runtime auf On -> Off schalten.

                Wenn das alles nix hilft, lies den Kram mal aus der DB, und schreib ihn unverändert in eine Textdatei und stell die hierhin, dann hat das Raten ein Ende.
                mein Sport: mein Frühstück: meine Arbeit:

                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                Kommentar


                • #9
                  Ich sehe gerade noch ein Problem: Du willst vermutlich die Umlaute in den SQL-Daten ersetzen, aber den HTML-Text so stehen lassen wie er ist.
                  Dann bearbeite nur die eigentlichen Daten statt des gesamten Textes!
                  Außerdem würd ich die TDs auch schließen und die Tag-Attribute in Anführungszeichen setzen.
                  Und was passiert mit $str? solltest du vielleicht noch irgendwie ausgeben ...
                  PHP-Code:
                  include "function.php";
                  while (
                  $row mysql_fetch_assoc($result))
                  {
                    foreach(
                  $row as $k=>$v)
                      
                  $row[$k] = nl2br(htmlentities($v));
                    
                  $str "<td>$row[ID]</td><td> <A HREF=\"Aenderung.html"
                      
                  "?id=$row[ID]\">$row[vorname]</A>$row[nachname]</td>";
                    
                  // Hier $str ausgeben?
                    
                  echo "$str<td><input type=\"radio\""
                      
                  ." name=\"id\" value=\"$row[ID]\"></td>";
                  }
                  mysql_free_result($result); 
                  Und nochmal: die Änderung mit den Entities siehst du nur, wenn du dir vom Browser den Quelltext der erzeugten Seite anzeigen läßt.
                  mein Sport: mein Frühstück: meine Arbeit:

                  Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                  Kommentar


                  • #10
                    Waho schaff einfach net ich hänge jetzt die Datei mit der Suche und der Funktion an

                    Dankeschön
                    Gillz
                    Zuletzt geändert von ; 25.04.2002, 16:41.

                    Kommentar


                    • #11
                      Ich finde keinen Fehler - zumindest nicht was das Ersetzen selbst angeht.

                      Ich sags nochmal: Du solltest nur die Bestandteile von $row durch die Funktion schicken, sonst werden nicht deine Spalten angezeigt, sondern deren Quelltext.

                      Und:
                      - warum ist die Form-Action Aenderung.html? sollte das nicht .php heißen?
                      - in der letzten Tabelle (Daten anzeigen) fehlt '</td></tr>'

                      Aber das Ersetzen an sich muß so funktionieren!
                      mein Sport: mein Frühstück: meine Arbeit:

                      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                      Kommentar

                      Lädt...
                      X