PHP in Forum ausgeben ?

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

  • PHP in Forum ausgeben ?

    Guten Morgen,
    ich habe ein kleines Forum geschrieben das auch soweit bis jetzt funktioniert. Nun ist es aber so das einige User ihren PHP Code posten und dieser nicht sichtbar ist.

    Ich kam auf die idee alle Anführungsstriche in
    PHP-Code:
    &quot
    und alle klammern von < oder > in
    PHP-Code:
    &lt
    oder
    PHP-Code:
    &gt
    umzuwandeln. Klappt auch soweit recht gut nur schreit er bei jedem Zeilenumbruch mir nun mein <br> aus.

    Ich habe es dann mal mit einer Textarea versucht klappt super schaut allerdings bescheuert aus

    Jemand eine idee wie ich das kleine Problem lösen könnte ?


    Zuletzt geändert von Mundgeruch; 27.06.2005, 07:31.

  • #2
    http://de3.php.net/highlight_string
    Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

    Kommentar


    • #3
      Ah das Kind hat auch einen Namen

      Kommentar


      • #4
        Nabend,
        so habe mal rumgefummelt und funktioniert auch soweit, aber ein klitze kleines Problemchen taucht auf.

        PHP-Code:
        $hack = array('#\[php\](.*?)\[\/php\]#se');
        $code = array("'php<hr>'.highlight_string(stripslashes('$1'), true).'<hr>'");
        $nachricht preg_replace($hack,$code,$nachricht); 
        Klappt auch soweit, nur werden mir die Zeilenumbrüche mit <br />angezeigt.

        <br />
        <?<br />
        echo $test;<br />
        ?><br />

        Habe mal Zeile $nachricht = str_replace("\n", "", $nachricht); hinzugefügt, aber dann verschwinden logischer weise alle Zeilenumbrüche

        Hat da jemand eine klitze kleine idee ?

        Kommentar


        • #5
          edit: klappt doch nicht so wie ich wollte, bin dankbar für jede anregung.

          Nacht zusammen ...
          Zuletzt geändert von Mundgeruch; 28.06.2005, 01:13.

          Kommentar


          • #6
            Was enthält denn $nachricht vor und nach dem preg_replace und str_replace?

            Kommentar


            • #7
              Guten Morgen,
              $nachricht ist der Foreneintrag vom User den ich aus der Datenbank hole.

              So schaut es im moment aus


              PHP-Code:
              $nachricht nl2br($row[4]); 
                      
                      
              // email
                      
              $hack "|(\[email\])(.*?)(\[/email\])|s";
                      
              $code "<a href=\"mailto:\\2\">\\2</a>";
                      
              $nachricht preg_replace($hack,$code,$nachricht);

                      
              // php code
                         
              $hack = array('#\[php\](.*?)\[\/php\]#se');
                         
              $code = array("'<p><div style=\"width:390px; overflow:auto;\"><blockquote><font size=\"-2\" color=\"#861010\"> PHP Code:<hr style=\"color:#861010\";> </font>'.highlight_string(stripslashes('$1'), true).' <font size=\"-2\" color=\"#861010\"> 
              <hr style=\"color:#861010\";></font></blockquote></div></p>'"
              );
                      
              $nachricht str_replace("/n"""$nachricht);
                      
              $nachricht preg_replace($hack,$code,$nachricht); 


              Nachtrag:
              Habe mal einen Testeintrag gemacht unter http://www.free-ticker.de/neu/?navig...lesen&topic=72

              mir fällt auch gerde auf das neben den <br /> auch fehlermeldungen in Text stehen. Wie Z.B.

              Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /var/www/web219/html/neu/funktionen.php(900) : regexp code on line 14

              Das Problem ist aber nur wenn ich [php] aufrufe normale foreneinträge sind ok.
              Zuletzt geändert von Mundgeruch; 28.06.2005, 18:12.

              Kommentar


              • #8
                Für den Antworten-Button mußte ich eben bis Moskau scrollen. Bitte mal umbrechen!

                Die <br> kommen sicher vom nl2br(). Versuchs mal ohne.

                Kommentar


                • #9
                  Hallöchen danke für deine Antwort und du hattest recht das es an

                  $nachricht = nl2br($row[4]);

                  liegt, Problem ist nun das die Zeilenumbruche nicht mehr existieren

                  Kommentar


                  • #10
                    Und wenn du das nl2br() hinter dem preg_replace machst?
                    Anders gefragt: Im Quellcode existieren die zeilenümbrüche aber schon noch, oder?
                    Es ist nicht deine Schuld, dass die Welt ist, wie sie ist,
                    Es wär nur deine Schuld, wenn sie so bleibt

                    Kommentar


                    • #11
                      Ich wiederhole mich:

                      - Was enthält denn $nachricht vor und nach dem preg_replace und str_replace?

                      - Für den Antworten-Button mußte ich eben bis Moskau scrollen. Bitte mal umbrechen!

                      Kommentar


                      • #12
                        So habe nun nl2br() hinter dem preg_replace gesetzt und es funktioniert wunderbar. Wäre ehrlich nie auf die idee gekommen das es daran liegen könnte.

                        Danke euch beiden

                        Kommentar

                        Lädt...
                        X