Anzeige

PHP-Highlight Problem

PHP-Highlight Problem | PSD-Tutorials.de

Erstellt von Robbyn-, 07.04.2011.

  1. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    PHP-Highlight Problem
    Hallöle,

    ich habe mir mal mein WYSIWYG Editor erweitern wollen (zum Spaß) und bin da auf eine Hürde gestoßen. Ich habe mir GeSHi gedowloaded. Dies ist eine Klasse womit man verschiedene Codstücken in Highlights setzen kann in verschiedene Programmiersprachen.
    Wie folgt wird diese Klasse angewendet:

    PHP:
    1.  
    2. include_once 'geshi.php';
    3. //// Define some source to highlight, a language to use
    4. // and the path to the language files//
    5.  $source = '$foo = 45;
    6. for ( $i = 1; $i < $foo; $i++ ){
    7.  echo "$foo\n";  --$foo;
    8. }';$language = 'php';
    9.  //
    10. // Create a GeSHi object//
    11.  $geshi = new GeSHi($source, $language);
    12.  //
    13. // And echo the result!//
    14. echo $geshi->parse_code();
    15.  
    Nun ist aber da mein Problem, das man ja im Editor alles eingibt und den Code ja nur mit [ php ] hervorheben muss um zu wissen wo der highlight Code anfängt. So ich habe dies versucht mit preg_replace zu lösen.

    PHP:
    1.  
    2. $suche = array('!\[php\](.+)\[\/php\]!iUse');
    3.  
    Nun aber wie kann ich da den oberen Startcode von GeSHi mit preg_replace verbinden???

    Ich hoffe Ihr könnt mir da helfen.

    MfG.Robbyn

    P.S. Danke schonmal ;)
     
    #1      
  2. Doitsu

    Doitsu Aktives Mitglied

    Dabei seit:
    15.04.2009
    Beiträge:
    482
    PHP-Highlight Problem
    AW: PHP-Highlight Problem

    Warum preg_replace? preg_replace_callback waere hier wohl die bessere Variante.
    PHP:
    1. function parse($array) {
    2.   $lang = $array[1];
    3.   $content = $array[2];
    4.   $geshi = new GeSHi($content, $lang);
    5.   $content = $geshi->parse_code();
    6.   return $content;
    7. }
    8.  
    9. $post = preg_replace_callback('#\[(php)\](.+?)\[\/\\1\]#si', 'parse', $post);
    Das php habe ich auch in klammern gesetzt, damit man das alles zusammenfassen kann, also wenn du z.B. auch html hast, kannst du (php|html) screiben.. etc. Die \\1 steht fuer '1 Suchbegriff im Ausdruck' (wird dann also durch php bzw. html ersetzt).
     
    #2      
  3. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    PHP-Highlight Problem
    AW: PHP-Highlight Problem

    Danke hat funktioniert ;)
     
    #3      
x
×
×