Php Highlighters

Pagina: 1
Acties:
  • 58 views sinds 30-01-2008

  • CumpsD
  • Registratie: Oktober 2001
  • Laatst online: 29-08-2025
Ik heb nu een scriptje dat stukjes php code highlight (ingebouwde functie is handig eh ;))

Maar nu vroeg ik me af of iemand goed werkende php highlighters heeft voor andere talen?

Denk hierbij aan
ASP, VB, Javascript, C(++/#), HTML

Men moet immers niet telkens het wiel opnieuw uitvinden ;)

Tnx

-----
Ps: de search doet het niet anders had ik het niet gevraagd ;)
en google heb ik al gezocht, zonder resultaat :(

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
En script-requests doen we hier niet aan ;)

  • cemtex
  • Registratie: Januari 2000
  • Laatst online: 22-04 20:52

cemtex

Version 1.1.1

hotscripts geprobeerd ?

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
zmn schreef op 17 augustus 2003 @ 15:07:
En script-requests doen we hier niet aan ;)
Nja, dan kan iemand mss zeggen of daar ergens een functie voor bestaat, ik heb iig ook niets gevonden erover. Moet je dan 'gewoon' wat regexps gaan doen om die kleurtjes in orde te krijgen of... ? Ik vind 't wel een vraag waar redelijk wat mensen mee zullen zitten.. Als de mods vinden dat 't een scripts request is gaat ie natuurlijk dicht maar volgens mij is hier wel menig tweaker in geïntresseerd.

If you can't beat them, try harder


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 18-08 10:07

Not Pingu

Dumbass ex machina

Simpel. Als je zowel de te highlighten woorden als de doelwit-tekst in een variabele hebt, kun je een simpele functie maken.

Stel je hebt de array keywords() en de string Paginacontent waar de tekst voor de pagina op staat, dan maak je zoiets:

ASP.NET Visual Basic:
1
2
3
For i = 0 To UBound(keywords)
  Replace(Paginacontent, keywords(i), "<SPAN CLASS=highlight>" & keywords(i) & "</SPAN>")
Next


easy as hell.

edit:
*schaam* ik had de TS niet helemaal goed begrepen, ik dacht dat hij een text highlighter wou maken maar hij wil een soort syntax highlighter.


SirQ, jouw oplossing is erg sterk. ik ken Perl dan wel niet maar ik zie dat je de php code tags zoekt en daarna regel voor regel gaat ontleden.
je zou een array kunnen maken met daarin allle belangrijke PHP keywords (zoals 'for','if' en andere taalelementen). dan moet je wel elke zin in woorden splitsen en per woord nagaan of het in die array staat.

[ Voor 42% gewijzigd door Not Pingu op 17-08-2003 16:17 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


  • CumpsD
  • Registratie: Oktober 2001
  • Laatst online: 29-08-2025
het probleem is : alle keywords vinden :)

uiteindelijk wou ik tot zoiets komen per taal:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
        function PhpHighlight($code) {
            $code = str_replace("\t", "  ", $code);
            $split = split("\n", $code);  
            $aantal = count($split); 
          
            if($lines < 100) {
                $width = "14";
            } elseif ($lines < 1000) {
                $width = "22";
            } elseif ($lines < 10000) {
                $width = "30";
            } else {
                $width = "14";
            }
            $code = "<?php\n" . $code . "\n?>";
            //$code = highlight_string($code, true); /* php >= 4.2.0 */ 
            ob_start();
            highlight_string($code);
            $code = ob_get_contents();
            ob_end_clean();
            $lines = explode("<br />", $code);
            $content = "<table class=\"CodeSnippet\" cellspacing=\"0\" border=\"0\">";  
            for ($i = 0; $i < $aantal; $i++) {
                $t = $i + 1;
                $content .= "<tr><td width=\"" . $width . "\" class=\"CodeLineNumber\">" . $t . "</td>"; 
                $content .= "<td class=\"CodeText\">" . $lines[$i+1] . "</td>";
                $content .= "</tr>";     
            }
            $content .= "</table>";
            $content = str_replace("<code>", "", $content);
            return $content;
        } /* PhpHighlight */
?>


Gunp01nt: wat php betreft heb ik geen prob, daarvoor dient de functie highlight_string :) die code levert me nu iets soortgelijk op als de code tag hier op GoT, maar ik zou dus meerdere talen willen kunnen parsen (zoals op GoT :)) en het is op dat gebied dat ik me afvroeg of iemand raad weet (ik ken bv zeker niet alle reserved words van alle talen, laat staan dat ik weet welke colors zij default in bv visual studio, dreamweaver, .. gebruiken)

[ Voor 51% gewijzigd door CumpsD op 17-08-2003 17:05 . Reden: script gechanged, reply op Gunp01nt ]


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 18-08 10:07

Not Pingu

Dumbass ex machina

SirQ:

kijk voor vergelijkend materiaal naar de Crimson Editor. Dit is een UltraEdit kloon die verschillende soorten syntaxen highlight, dmv. bestanden waarin wordt aangegeven hoe een bepaalde range herkend kan worden (bijv. <? en ?> voor een PHP range) en welke reserved words er binnen die range zijn.

Zo kun je natuurlijk ook per taal instellen wat de kleuren daarvoor zijn, maar je kunt net zo goed altijd dezelfde kleuren gebruiken (eventueel de user laten bepalen welke kleur welke range moet hebben etc.).

Certified smart block developer op de agile darkchain stack. PM voor info.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Sja blijft een script request hoe ik er ook naar kijk :)

Je kunt evt. .oisyn even mailen, die heeft alle highlighters voor GoT gemaakt, bijv.
C++:
1
2
3
4
5
6
#include <stdio.h>
int MyClass:MyFunc(int p_Fiets)
{
printf("You said: %d\n!", p_Fiets);
return p_Fiets;
}

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.