ausgabe von highlight_string in var. packen

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

  • ausgabe von highlight_string in var. packen

    hallo!

    ich wollte grad mein forum um die nützliche funktionen des php-syntax-highlighting erweitern!

    allerdings gibt highlight_string() ja nur true/false zurück und gibt das ergebnis automatisch aus ...

    wie kann ich nun die ausgabe von highlight_string() in eine varible packen, um den inhalt von <php> .... </php> mit diesem zu ersetzen?

    danke für eure tipps!
    GNU/LINUX

  • #2
    PHP-Code:
    ob_start(); 
    highlight_string($source); 
    $colorsource ob_get_contents(); 
    ob_end_clean(); 
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      geht das ganze bei einem forum, welches die daten erst bei der ausgabe parst, nicht recht stark an die performance?
      GNU/LINUX

      Kommentar


      • #4
        keine ahnung.
        jede funktion kostet doch performance ..

        aber nur so kannst du das in eine variable bekommen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          alles klar!

          allerdings bekomm ich das nicht so recht hin.

          hier mein ansatz:

          PHP-Code:
          $txt preg_replace("#\[php\](.+?)\[/php\]#is"$this->parse_php("\\1"), $txt); 
          PHP-Code:
          function parse_php($str) {
                   
                   ob_start();
                   
                   if( !strstr($str,"<?") ) highlight_string("<?php ".$str."?>");
                   else                highlight_string($str);
                   
                   $str = ob_get_contents();
                   
                   ob_end_clean();
                   
                   return addslashes($str);
              }
          GNU/LINUX

          Kommentar


          • #6
            probier es mal so.
            ich habe es zwar nicht getestet, aber egal ..

            kann auch sein, dass ich die fragezeichen nur fälschlicherweise escaped habe.

            PHP-Code:
            function parse_php($str) {

                if( !
            strstr($str,"<\?") ) {

                  
            ob_start();
                  
            highlight_string("<\?php ".$str."\?>");
                  
            $str ob_get_contents();
                  
            ob_end_clean();

                } else {
                
                  
            ob_start();
                  
            highlight_string($str);
                  
            $str ob_get_contents();
                  
            ob_end_clean();

                }
                
                return 
            addslashes($str);


            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              mist.... escapes sind fott.

              hier mal als CODE

              Code:
              function parse_php($str) {
              
                  if( !strstr($str,"<\?") ) {
              
                    ob_start();
                    highlight_string("<\?php ".$str."\?>");
                    $str = ob_get_contents();
                    ob_end_clean();
              
                  } else {
                  
                    ob_start();
                    highlight_string($str);
                    $str = ob_get_contents();
                    ob_end_clean();
              
                  }
                  
                  return addslashes($str);
              
              }
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                $str = hightlight_string($str, true) // true besagt dass alles zurückgegeben und nicht ausgegeben wird
                mfg,
                [color=#0080c0]Coragon[/color]

                Kommentar


                • #9
                  egal wie ichs einsetze, es wird immer
                  Code:
                  <?php 1?>
                  zurückgegeben ...
                  GNU/LINUX

                  Kommentar


                  • #10
                    Original geschrieben von Coragon Rivito
                    $str = hightlight_string($str, true) // true besagt dass alles zurückgegeben und nicht ausgegeben wird

                    das funktioniert ... und ich mach mir so eine mühe!
                    *ankopfgreif*

                    vielen dank!!!
                    GNU/LINUX

                    Kommentar


                    • #11
                      toll. das hätte ja auch mal jemand bei PHP.net schreiben können ...

                      oder habe ich das da nur übersehen ...
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        ah, ich seh grad .. bei der englischen dokumentation stehts ..

                        mixed highlight_string ( string str [, bool return])
                        mfg,
                        [color=#0080c0]Coragon[/color]

                        Kommentar

                        Lädt...
                        X