Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Syntax highlighting [non per PHP!]

    Ho fatto una ricerca nel forum ma non ho trovato nulla:
    qualcuno conosce qualche script/libreria che mi faccia l'evidenziazione della sintassi per linguaggi come Java e C++?
    In pratica ho bisogno di qualcosa (classe, funzione...) a cui passo una stringa contenente un frammento di codice Java o C++ e che mi restituisca una stringa con opportune aggiunte di tag HTML per evidenziare le keywords, le stringhe ecc.

    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  2. #2

  3. #3
    bello! grazie mille!
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  4. #4
    Codice PHP:
    // C
    int main(int argcchar *argv[]) {
        
    char         *str;
        for(
    argc 0argc 90argc++) {
            
    str = (char *)calloc(((argc 10 2) + 2), sizeof(char));
            
    sprintf(str" %i "argc);
            
    printf("%i\n"virtualSmorfia(str));
            
    free(str);
        }
        return 
    0;

    Codice PHP:
    // JavaScript
    function virtualSmorfia(str) {
        
    str str.replace(/^\s+|\s+$/g"");
        var 
    0str.length0;
        
    str hex_md5(str);
        while(
    32)
            
    += str.charCodeAt(a++);
        return 
    Math.floor(b) % 90 || 90;
    }; 
    Codice PHP:
    // Python
    import md5
    def virtualSmorfia
    (str):
        
    str str.strip()
        
    0len(str); 0
        str 
    md5.new(str).hexdigest()
        while(
    32):
            
    ord(str[a]); 1
        
    return ((int)(b) % 90) or 90 
    Codice PHP:
    // PHP
    function virtualSmorfia($str) {
        
    $str trim($str);
        
    $a 0$b strlen($str); $c 0;
        
    $str md5($str);
        while(
    $a 32)
            
    $c += ord(substr($str$a++, 1));
        
    $c = (int)($c $b) % 90;
        return 
    $c === 90 $c;

    Codice PHP:
    // ActionScript
    function virtualSmorfia(str:String):Number {
        
    str trim(str);
        var 
    a:Number 0b:Number str.lengthc:Number 0m:md5 = new md5();
        
    str m.hash(str);
        while(
    32)
            
    += str.charCodeAt(a++);
        return 
    Math.floor(b) % 90 || 90;


    come vedi l'highlight_string di PHP fa già quello che cerchi su una funzione built_in, molto veloce ... tutto quello che devi verificare è se il tag di apertura codice
    <?php
    è presente o meno nella stringa ... se non c'è lo metti all'inizio, fai l'highlight e poi lo rimuovi dalla stringa "highlightata"


    P.S. ovviamente Geshi è una cosa più professionale ma secondo me non così indispensabile, resta di fatto uno dei più noti e funzionali
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Originariamente inviato da andr3a
    come vedi l'highlight_string di PHP fa già quello che cerchi
    a dire il vero manca l'evidenziazione di tutte le parole chiave del linguaggio prescelto, evidenzia solo quelle comuni al PHP e il risultato è quindi disomogeneo, rischi metà parole chiave evidenziate e metà no, un po' bruttoccio

  6. #6
    ovvio, highlight_string è per php ... ma di fatto non fa chissà quale highlight nemmeno con php stesso.

    di un highlight le cose importanti, di solito e ovviamente secondo me, sono:

    stringhe double o single quote
    commenti // oppure # oppure /** ... */

    fino a poco tempo fa tanti (tutti ?) i forum che implementavano highlight per altir linguaggi usavano questa funzione e cambiavano poi i colori a secnoda del tag scelto, un pò come ho fatto io per la vecchia CodeLighter per php ... su tag [py] o [as]


    come ho già detto geshi è più professionale, ma secondo me non indispensabile


    P.S. mi sembra che anche in PEAR ci sia qualcosa di utile, prova a fare una ricerca



    [edit]
    e mi sembra sia proprio questo package
    http://pear.php.net/package/Text_Highlighter
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.