Tobias Unger: <textarea> ersetzt "&nbsp;" durch " "

Hi,
 ich schreibe derzeit ein PHP-Script, mit dem ich eine HTML-Datei direkt auf dem Server bearbeiten kann.
 Die HTML-Datei enthällt jedoch Zeichen wie "&nbsp;" und ich finde gerade nicht die richtige Funktion in PHP, damit nach dem Übertragen per POST nicht " " statt "&nbsp;" in der Datei steht!

Könnte mir vielleicht jemand einen Tipp geben, was ich tun soll?

Danke,
Tobias

  1. Hi Tobias;

    Könnte mir vielleicht jemand einen Tipp geben, was ich tun soll?

    Du mußt _nichts_ tun - das ist ja das schöne daran :)

    Gruß aus Berlin!
    eddi

    --
    Wer Rechtschreibfehler findet, darf sie behalten.
    1. Hi Tobias;

      Tschuldige, jetzt verstehe ich erst, was Du meinst. (Denn eine mittels POST übergebener String "&nbsp;" beleibt auch "&nbsp;".)
      Dir geht es aber sicher darum, daß die Daten im Feld vom Browser konvertiert dargestellt werden. Dafür eignet sich str_replace() => str_replace('&','&amp;',$text);

      Gruß aus Berlin!
      eddi

      --
      Wer Rechtschreibfehler findet, darf sie behalten.
      1. Hi,

        Dafür eignet sich str_replace() => str_replace('&','&amp;',$text);

        ja - nur wie speichere ich das wieder?
         Ich könnte natürlich str_replace('&amp;', '&', $text) sagen, aber dann würden ja auch $amp; durch & ersetzt, die wirklich als &amp; in der HTML-Datei bleiben sollen!

        Danke für eure Antworten,
        Tobias

        1. Hi Tobias,

          also hatte ich mit meinem anfänglichen Fehler doch gar nicht so unrecht. Darum mußt Du Dir keinen Kopf machen, denn alles, was als Sonderzeichen eingegeben wird, kommt nach dem absenden des Formulars auch genauso, wie es eingegeben wurde, beim Server -sprich- bei PHP an.

          Gruß aus Berlin!
          eddi

          --
          Wer Rechtschreibfehler findet, darf sie behalten.
          1. Hi eddi,

            also hatte ich mit meinem anfänglichen Fehler doch gar nicht so unrecht. Darum mußt Du Dir keinen Kopf machen, denn alles, was als Sonderzeichen eingegeben wird, kommt nach dem absenden des Formulars auch genauso, wie es eingegeben wurde, beim Server -sprich- bei PHP an.

            Ja, aber in der Textarea steht ja auch schon kein &nbsp; mehr sondern nur noch " " - was mache ich, damit das nicht passiert?

            Gruß,
            Tobias

            1. Lieber Tobias...!

              https://forum.selfhtml.org/?t=122547&m=788192

              Gruß aus Berlin!
              eddi

              --
              Wer Rechtschreibfehler findet, darf sie behalten.
              1. Hi eddi,

                https://forum.selfhtml.org/?t=122547&m=788192

                Aber wie ist es denn mit:
                https://forum.selfhtml.org/?t=122547&m=788200

                Wäre nett, wenn du mir das noch mit ein paar Wörtern erläutern könntest!

                Danke,
                Tobias

                1. Nabend Tobias,

                  ich wüßte nicht, was es dort noch groß zu schreiben gäbe, wo doch von Dir auch nicht erklärt wird, wo es hakt...

                  <textarea rows="100" cols="300">
                  <?php
                  $a=array('&','<','>');
                  $b=array('&amp;','&lt','&gt');
                  echo str_replace($a,$b,file_get_contents('xyz.xhtml'));
                  ?>
                  </textarea>

                  Gruß aus Berlin!
                  eddi

                  --
                  Wer Rechtschreibfehler findet, darf sie behalten.
                  1. Moin!

                      
                    
                    > <?php  
                    > $a=array('&','<','>');  
                    > $b=array('&amp;','&lt','&gt');  
                    > echo str_replace($a,$b,file_get_contents('xyz.xhtml'));  
                    > ?>  
                    
                    

                    Hey. Nette Funktion. Aber da gibts doch auch was von Ratiopharm.

                    - Sven Rautenberg

                    --
                    My sssignature, my preciousssss!
                    1. Moi moin!

                      Hey. Nette Funktion. Aber da gibts doch auch was von Ratiopharm.

                      *lach* - hatte ich aber schon gesehen, daß Du hier die bessere Variante angeboten hattest; ich wollte nur bei str_replace() bleibend auch einen Senf dazu geben.

                      Gruß aus Berlin!
                      eddi

                      --
                      Wer Rechtschreibfehler findet, darf sie behalten.
            2. Heißa, Tobias,

              Ja, aber in der Textarea steht ja auch schon kein &nbsp; mehr sondern nur noch " " - was mache ich, damit das nicht passiert?

              Wenn du dem Browser ein Zeichen mit dem Hexcode A0 (was in HTML das &nbsp; ist) in eine Textarea schreibst, wird der Browser dieses als normales Leerzeichen übertragen. Da wirst du nichts dran ändern können.
              Deswegen würde ich beim Ausgeben des HTML-Codes in die Textarea schon htmlentities() anwenden, damit in der Textarea das HTML-kodierte &nbsp; steht.

              Gautera!
              Grüße aus Biberach Riss,
              Candid Dauth

              --
              Ein Fußball-Fan? Noch auf der Suche eine Schlafmöglichkeit im Großraum Stuttgart für die WM 2006? Wie wäre es mit Herrenberg, einer gemütlichen Kleinstadt am Rande des Schönbuchs – von der Lage her ideal, auch für andere Vorhaben im Urlaub. Ferienwohnungen-Herrenberg.com.
              http://cdauth.de/
              1. Hi Candid (so sieht man sich wieder *g*),

                Deswegen würde ich beim Ausgeben des HTML-Codes in die Textarea schon htmlentities() anwenden, damit in der Textarea das HTML-kodierte &nbsp; steht.

                genau das wars - k.A., warum ich das jetzt nicht gefunden habe...

                Danke,
                Tobias

                PS.: In der Datei zu meinem Gästebuch kommt das Zeichen "^M" vor - wenn mir jetzt noch jemand sagen könnte, das ich mache, damit das nicht zu einem Zeilenumbruch führt (also nicht mit str_replace() sondern möglichst allgemein für alle merkwürdigen Zeichen) wäre das super (wenn nicht muss ich halt alle mir bekannten Zeichen mit str_replace() rausfischen...

              2. Hi Candid Dauth,

                normales Leerzeichen übertragen. Da wirst du nichts dran ändern können.

                Deswegen würde ich beim Ausgeben des HTML-Codes in die Textarea schon htmlentities() anwenden, damit in der Textarea das HTML-kodierte &nbsp; steht.

                Auf htmlentities hatte ich ja selbst schon verwiesen, nur:

                $html='ä ö  ä"';
                echo htmlentities($html);

                gibt:&auml; &ouml;  &auml;&quot;

                von &nbsp; keine Spur.

                Gruß, Frankx

              3. Moin!

                Deswegen würde ich beim Ausgeben des HTML-Codes in die Textarea schon htmlentities() anwenden, damit in der Textarea das HTML-kodierte &nbsp; steht.

                Ich würde htmlentities() nicht anwenden, sondern immer htmlspecialchars() benutzen. Denn meine Funktion wandelt nur die HTML-eigenen Sonderzeichen wie <, > und & in Entities um, während htmlentities() das auch für viele weitere Zeichen tut. Das will man eventuell aber nicht haben.

                - Sven Rautenberg

                --
                My sssignature, my preciousssss!
                1. Heißa, Sven,

                  Ich würde htmlentities() nicht anwenden, sondern immer htmlspecialchars() benutzen. Denn meine Funktion wandelt nur die HTML-eigenen Sonderzeichen wie <, > und & in Entities um, während htmlentities() das auch für viele weitere Zeichen tut. Das will man eventuell aber nicht haben.

                  Ja, stimmt, geht auch. Normalerweise verwende ich auch htmlspecialchars(), irgendwie bin ich hier durch das &nbsp; durcheinander gekommen.

                  Gautera!
                  Grüße aus Biberach Riss,
                  Candid Dauth

                  --
                  Ein Fußball-Fan? Noch auf der Suche eine Schlafmöglichkeit im Großraum Stuttgart für die WM 2006? Wie wäre es mit Herrenberg, einer gemütlichen Kleinstadt am Rande des Schönbuchs – von der Lage her ideal, auch für andere Vorhaben im Urlaub. Ferienwohnungen-Herrenberg.com.
                  http://cdauth.de/
  2. Hi Tobias,

    hilft htmlentities() was? Und vielleicht brauchste auch nl2br()?

    Gruß, Frankx