Ankündigung

Einklappen
Keine Ankündigung bisher.

String mit Hochkommas in einem Formular ausgeben

Einklappen

Neue Werbung 2019

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

  • String mit Hochkommas in einem Formular ausgeben

    Hallo Leute,

    hier ein Beispiel:

    $text = 'Das ist ein Text " mit einem Hochkomma';
    echo '<input ... value="'.$text.'">';

    Das Funktioniert leider nicht, weil dann folgendes "gemacht" wird:

    <input ... value="Das ist ein Text " mit einem Hochkomma">

    Das fettgedruckte wird also nicht mal ausgegeben, logischer Weise. Wie kann ich das umgehen?

    Gruß Dima

  • #2
    http://de3.php.net/types.string

    Kommentar


    • #3
      str_replace('"', '\"', $name);

      Aber es geht trotzdem nicht

      Kommentar


      • #4
        aufgedröselt:
        str_replace(' " ', ' \" ', $name);
        Wenn schon $name = str_replace('"', '\"', $name);
        Das ist aber nicht die übliche Vorgehensweise. In HTML ist es erlaubt, auch
        einfache Anführungszeichen zur Attribut-Eingrenzung zu verwenden (ich
        persönlich mache das aber nicht). Das sähe dann so aus:

        PHP-Code:
        <?php
        print "<input ... value='$text'>";
        // Alternative:
        printf('<input .. value="%s">'$text);
        // oder um die einfachen Anführungszeichen zu behalten:
        echo '<input .. value=" ' $text ' ">'// 2 Leerzeichen zuviel, der Deutlichkeit halber
        ?>
        printf() Funktionsweise, siehe Manual:
        http://de.php.net/printf
        http://de.php.net/sprintf

        Kommentar


        • #5
          So sieht meine Funktion aus:

          PHP-Code:
          <?php
          function inputFoc($name$width$text=''$maxlength='')
          { return(
          '<input name="'.$name.'" type="text" class="formInput" style="width:'.$width.';" value="'.$text.'" id="focus" maxlength="'.$maxlength.'">'); }
          ?>
          Die Variable $text soll "gesichert" werden. Mit str_replace hat es leider nicht geklappt! Gibt es eine andere möglichkeit außer mit print(f)?
          Und wenn ich einfache Anführungszeichen mache (print "<input ... value='$text'>"; ) dann kann ich keine einfachen Anführungszeichen verwenden ...

          Gruß Dima

          EDIT:

          Ich verwende hier an der Stelle kein echo oder print, meine ganze Webseite wird erstmal in einer Variable gespeichert, und diese Variable wird auf einer anderen Seite dann ausgegeben!

          Kommentar


          • #6
            Deine Funktion funktioniert doch...

            PHP-Code:
            <?php
            function inputFoc($name$width$text=''$maxlength='')
            { return(
            '<input name="'.$name.'" type="text" class="formInput" style="width:'.$width.';" value="'.$text.'" id="focus" maxlength="'.$maxlength.'">'); }

            print 
            inputFoc("NName""WWidth""TText""MMaxlength");
            ?>
            HTML-Quelltext
            PHP-Code:
            <input name="NName" type="text" class="formInput" style="width:WWidth;" value="TText" id="focus" maxlength="MMaxlength"

            Oder was meinst du mit gesichert?

            Kommentar


            • #7
              Zitat von I-Spy
              Gibt es eine andere möglichkeit außer mit print(f)?
              Ich denke mal Du suchst nach HTML-Entitäten. Also z.B. &quot; für " :

              http://php.net/htmlentities

              Kommentar


              • #8
                Danke euch beiden vielmals!
                Mit htmlentities hat es ohne Probleme geklappt

                Gruß Dima

                Kommentar

                Lädt...
                X