Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179

    [Java]MATCHER:conoscere il tipo di script trovato

    salve io un codice che mi permette di estrapolare gli script da una pagina htm
    vorrei sapere per ogni script trovato che tipo sia....
    cioè se il primo script è di tipo javaScript mi salva in una varialile apposita la stringa "trovato script Java script"
    e così con il secondo ed il terzo script trovato:
    codice:
    Pattern  pattern = Pattern.compile ("<SCRIPT.*?>(.*?)</SCRIPT>|<%.*?(%@)?(.*?)%>|<%.*?>(.*?)%>|<\\?(?:php)?(.*?)\\?>",Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
                Matcher matcher = pattern.matcher (testoPagina);
                StringBuffer stringBuffer = new StringBuffer();
                int scriptNumber = 0;
                while (matcher.find ())
                {
                	scriptNumber++;
                    String script = matcher.group (0);     
                    StringBuffer scriptText = new StringBuffer();
                    scriptText.append("SCRIPT " + scriptNumber + ":\r\n ");
                    scriptText.append(script); 
                    scriptText.append("\r\n");
                    stringBuffer.append(scriptText);
                    System.out.println (scriptText);
    questa è solo ala parte di codice che si occupa della ricerca...!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Esempio completo:
    codice:
    import java.io.*;
    import java.util.regex.*;
    
    public class ExtractScripts
    {
        public static void main (String[] args)
        {
            if (args.length == 1)
            {
                try
                {
                    String text = readFile (args[0]);
    
                    String regex = "<SCRIPT.*?>(.*?)</SCRIPT>|" +   // Javascript/JScript/VBScript
                                   "<\\?(?:php)?(.*?)\\?>";         // PHP
    
                    Pattern pattern = Pattern.compile (regex, Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
                    Matcher matcher = pattern.matcher (text);
    
                    int number = 0;
                    String script;
    
                    while (matcher.find ())
                    {
                        if ((script = matcher.group (1)) != null)
                        {
                            // trovato script Javascript/JScript/VBScript
                            number++;
                            System.out.println ("------ Script #" + number + " (Javascript/JScript/VBScript)");
                            System.out.println (script);
                            System.out.println ("");
                        }
                        else if ((script = matcher.group (2)) != null)
                        {
                            // trovato script PHP
                            number++;
                            System.out.println ("------ Script #" + number + " (PHP)");
                            System.out.println (script);
                            System.out.println ("");
                        }
                    }
                }
                catch (Exception e)
                {
                    System.out.println (e);
                }
            }
        }
    
        public static String readFile (String fileName)
            throws IOException
        {
            InputStreamReader isr = null;
    
            StringBuffer sb = new StringBuffer ();
            char[] buf = new char[1024];
            int len;
    
            try
            {
                FileInputStream fis = new FileInputStream (fileName);
                isr = new InputStreamReader (fis);
    
                while ((len = isr.read (buf)) > 0)
                    sb.append (buf, 0, len);
    
                return sb.toString ();
            }
            finally
            {
                if (isr != null)
                    isr.close ();
            }
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179
    scusami and...
    prima di tutto grazie ancora una volta
    però vorrei dirti c'è il codice che mi hai fornito nn porta a nessuna risposta...
    io ho fatto:
    codice:
    import java.io.*;
    import java.util.regex.*;
    
    public class ExtractScripts
    {
        public static void main (String[] args)
        {
            if (args.length == 1)
            {
                try
                {
                    String fileRead = "c:/Ingegneria/mysql/temp/pagina_PHP.txt"; //questa pagina contiene sia php che javasript
                    String text = readFile (fileRead);
    
                    String regex = "<SCRIPT.*?>(.*?)</SCRIPT>|" +   // Javascript/JScript/VBScript
                                   "<\\?(?:php)?(.*?)\\?>";         // PHP
    
                    Pattern pattern = Pattern.compile (regex, Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
                    Matcher matcher = pattern.matcher (text);
    
                    int number = 0;
                    String script;
    
                    while (matcher.find ())
                    {
                        if ((script = matcher.group (1)) != null)
                        {
                            // trovato script Javascript/JScript/VBScript
                            number++;
                            System.out.println ("------ Script #" + number + " (Javascript/JScript/VBScript)");
                            System.out.println (script);
                            System.out.println ("");
                        }
                        else if ((script = matcher.group (2)) != null)
                        {
                            // trovato script PHP
                            number++;
                            System.out.println ("------ Script #" + number + " (PHP)");
                            System.out.println (script);
                            System.out.println ("");
                        }
                    }
                }
                catch (Exception e)
                {
                    System.out.println (e);
                }
            }
        }
    
        public static String readFile (String fileName)
            throws IOException
        {
            InputStreamReader isr = null;
    
            StringBuffer sb = new StringBuffer ();
            char[] buf = new char[1024];
            int len;
    
            try
            {
                FileInputStream fis = new FileInputStream (fileName);
                isr = new InputStreamReader (fis);
    
                while ((len = isr.read (buf)) > 0)
                    sb.append (buf, 0, len);
    
                return sb.toString ();
            }
            finally
            {
                if (isr != null)
                    isr.close ();
            }
        }
    }
    ma come risultato non da nulla!

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.