Newsgroup: it.comp.www.php
Titolo: [OT] Re: problema select su campo dataora

 wrote in message
[..]
Oh mio Dio.. il Serni! Dopo anni ti ribecco! Sai che ti dico? Simulmondo!

Oh mio Dio.. il Serni! Dopo anni ti ribecco! Sai che ti dico? Simulmondo!
Eagle One, missili fuori!
- - --=)====>
E per ritornare in topic, circa il parsing di funzioni, se non ti serve
nulla di complicato (funzioni variabili, ecc.), puoi parsarti il file -
usando PHP - e vedere cosa c'e' dentro:
	$modules = array(
		'if'			=> 'PHP',
		'psql_free_result'	=> 'Module:pgsql',
		...
		// Le altre 5700 lasciate per esercizio
	);
        function fileparse($file, $functions = array())
        {
                GLOBAL $modules;
                $content = file($file); // Richiesto path assoluto
                $content = preg_replace("|//.*|", '', $content);
                $content = preg_replace("|`[^`]*`|", '$EXEC', $content);
                $content = preg_replace("|`|", '', $content);
                $content = preg_replace("|\\['\"]|", '`', $content);
                $content = preg_replace("|'[^']*[()][^']*'|", '$STRING',
$content);
                $content = preg_replace('|"[^"]*[()][^"]*"|', '$STRING',
$content);
                $content = implode('', $content);
                // Estrazione delle parti fra {?[php]...?}
                $content = strtr($content, "#\r\n", '+  ');
                $beg='{#'.'{'; $content = ereg_replace('<\?[ph]*', $beg,
$content);
                $end='}'.'#}'; $content = ereg_replace('\?>', $end,
$content);
                $content = ereg_replace($end.'[^\#]*'.$beg, '', $content);
                $content = ereg_replace('^[^\#]*'.$beg, '', $content);
                $content = ereg_replace($end . '[^\#]*$', '', $content);
preg_match_all('/\b(include|require)(_once)*\b\s*["\']([^"\']*)["\']/i',
$content, $incs);
                $includes = $incs[3];
                // Facciamo saltare le funzioni definite qui (in realta'
dovremmo caricarle in un array $defines, cosi' come le funzioni invocate
qui andrebbero in un array $callers...
                $content =
preg_replace('|\bfunction\b\s*\b([_A-Z0-9]+)\b\s*\([^
()]*\)|i', '$DEFFUNCTION', $content);
                do {
                        preg_match_all('|\b([_A-Z0-9]+)\b\s*\([^()]*\)|i',
$cont
ent, $matches);
                        $matches = $matches[1];
                        $content =
preg_replace('|\b([_A-Z0-9]+)\b\s*\([^()]*\)|
i', '$FUNCTION', $content);
                        $functions =
array_unique(array_merge($functions,$matche
s));
                } while (count($matches) != 0);
                return array($includes, $functions);
        }
        set_time_limit(5);
        $files = array($_REQUEST['file']);
        $functions = array();
        do
        {
                $file = array_shift($files);
                print "<TT>Examining $file...</TT><BR>";
                list($new, $functions) = fileparse($file, $functions);
                print "Extracted " . count($functions) . " functions.<BR>";
                $files = array_merge($files, $new);
        }
        while(count($files));
        print "<PRE>";
        print_r($functions);
        print "</PRE>";
?>
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.