Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Text mit Links (HTML)-formatiert ausgeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Text mit Links (HTML)-formatiert ausgeben

    Entschuldigt, wenn die Überschrift etwas wirr klingt. Ich weiß nicht recht, wie ich das formulieren soll.

    Konkret geht es um folgendes Problem: Ich lese aus einer MySQL-Tabelle einen Text aus, der später als Inhalt in einer HTML-Seite angezeigt werden soll. Soweit so gut. Innerhalb des Textes gibt es aber Links, die dort komplett mit <a href... umgeben stehen. Der Text sieht beispielsweise so aus:
    Code:
    Bitte senden Sie uns bei Interesse Ihre aussagekräftigen Bewerbungensunterlagen zu. Die ausführliche Stellenausschreibung erhalten Sie durch Klick auf den jeweiligen Bereich als PDF-Formular. 
     
    Falls Sie den dafür notwendigen Acrobat Reader noch nicht zur Verfügung haben, können Sie Ihn sich <a href="http://www.adobe.com/de/products/acrobat/readstep2.html" target="_blank">hier</a> kostenlos herunterladen.
    Ausgegeben wird er auf der Seite mit Hilfe dieser Zeile:
    PHP-Code:
    <?php echo nl2br(htmlentities($inhalt[1])); ?>
    Wird auch brav alles ausgegeben, aber eben alles. Also auch das gesamte drumherum und kein Link draus gemacht. Was mache ich falsch, und wie mache ich es richtig?

  • #2
    Hallo asyoulikeit,

    htmlentities() maskiert alle HTML-Zeichen. (siehe Manual: PHP: htmlentities - Manual) - also auch deinen Link. Wenn du jegliches HTML/JavaScript, dass im Text in der Datenbank steht auch angezeigt/ausgeführt haben willst, dann lasse htmlentities() weg.

    (Wenn das Benutzereingaben sind handelst du dir dadurch aber u.U. Sicherheitsprobleme ein...)
    [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

    Kommentar


    • #3
      Hm, o.k., das funktioniert, aber dann habe ich im Text wieder alle Umlaute und Sonderzeichen. Gibt's da nicht zufällig einen Befehl, der diese Zeichen umwandelt, aber HTML-Codes so lässt?

      Kommentar


      • #4
        PHP-Code:
        <?php
        function umlaute2ascii($string)
        {
          
        $string=str_replace('ä''&auml;'$string);
          
        $string=str_replace('Ä''&Auml;'$string);
          
        $string=str_replace('ö''&ouml;'$string);
          
        $string=str_replace('Ö''&Ouml;'$string);
          
        $string=str_replace('ü''&uuml;'$string);
          
        $string=str_replace('Ü''&Uuml;'$string);
          
        $string=str_replace('ß''&szlig;'$string);
          return 
        $string;
        }
        ?>

        Kommentar


        • #5
          O.K., danke, keine weiteren Fragen

          Kommentar


          • #6
            dann markier ich das mal als erledigt, bitte nächstes mal selber dran denken

            edit: ok, da war ich wohl ne sekunde zu spät

            Kommentar


            • #7
              Besser als nur die Umlaute zu codieren, wäre alles zu codieren, ausser den tags
              PHP-Code:
              echo nl2br(
                  
              preg_replace(array('/&lt;/i''/&gt;/i'), array('<''>'),
                      
              htmlentities($inhalt[1])
                  )
              ); 
              </span> </span>
              Gruss
              L

              Kommentar

              Lädt...
              X