kostenloser Webspace werbefrei: lima-city


User Funktionen und deren Parameter auslesen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    lukepress

    lukepress hat kostenlosen Webspace.

    Hallo

    ich habe eine Datei die mehrere tag/funktion">Funktionen enthält: inc-functions.php

    für Doku-Zwecke will ich alle darin definierten Funktionen und deren Parameter auslesen

    habe bei php.net was gefunden, das aber nicht wirklich funktioniert

    $content = file_get_contents('../functions.inc.php');
    preg_match_all("/(function )(\S*\(\S*\))/", $content, $matches);
    foreach($matches[2] as $match) {
    echo "Funktion:" . trim($match) . "<br />\n";
    }


    wie gesagt, geht nicht, damit kommen nur wenige der definierten Funktionen an

    also brauche ich ein REGEX für preg_match_all das mir wirklich alle Funktionen liefert

    .... alles zwischen 'function ' und dem ersten darauf folgenden '{'

    EDIT: ... habe jetzt doch schon was zusammen-getüftelt ...

    <?php
    // ----------------------------------------------------- 
    // ------- get user-defined functions from file -------- 
    // ----------------------------------------------------- 
    
    function get_functions_infile($filename); 
    	
    	$content = file_get_contents($filename);
    	
    	$pattern = '/function (.*?){/';
    	preg_match_all($pattern, $content, $matches);
    	
    	$erg = array(); 
    
    		$i=0; 
    		foreach($matches[1] as $match) {
    			
    			$match = trim(chop($match)); 
    			$erg[$i]['function'] = $match;
    			
    			$funcname = explode('(',$match); 
    			$erg[$i]['funcname'] = trim($funcname[0]);
    			
    			$argstr = strrchr($match,'('); 
    			$argstr = str_replace(array('(',')',' '),array('','',''),$argstr); 
    			$argarr = explode(',',$argstr); 
    			$erg[$i]['funcargs'] = $argarr; 
    			
    		$i++; 
    		}
    
    	return $erg; 
    
    }
    
    
    // ----------------------------------------------------- 
    // ------------------- Beispiel Aufruf -----------------
    // ----------------------------------------------------- 
    
    
    $run_file = 'inc-functions.php'; 
    
    $ergebnis = get_functions_infile($run_file); 
    
    print "<pre>\n"; 
    print_r($ergebnis); 
    print "</pre>\n"; 
    
    
    // ----------------------------------------------------- 
    ?>



    Beispiel Ausgabe:
    Array
    (
        [0] => Array
            (
                [function] => convertTag($tag, $direction = 'out')
                [funcname] => convertTag
                [funcargs] => Array
                    (
                        [0] => $tag
                        [1] => $direction='out'
                    )
    
            )
    
        [1] => Array
            (
                [function] => filter($data, $type = NULL)
                [funcname] => filter
                [funcargs] => Array
                    (
                        [0] => $data
                        [1] => $type=NULL
                    )
    
            )
    
    )




    was haltet Ihr davon :)
    ?

    Beitrag zuletzt geändert: 11.4.2012 19:16:50 von lukepress
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. s*************h

    Es gibt auch Tools die Quelltext für einen dokumentieren. Die besten Erfahrungen habe ich mit Doxygen gemacht. Es gibt aber auch phpDocumentor. Nachfolgend findest du einen Link zu den Websites.

    Doxygen: http://www.stack.nl/~dimitri/doxygen/
    PHPDocumentor: http://www.phpdoc.org/

    Gruß S.Brosch
  4. w*****e

    Mir gefällt das sehr gut, schön wäre es noch, wenn das Script auch einen Kommentar ausgeben könnte, der erklärt, was genau die Funktion macht, aber das ist wohl nicht zu realisieren... :biggrin:

    Kann man das nicht vielleicht so umschreiben, dass es auch Klassen dokumentieren kann?

    Mfg webaffe
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    webaffe schrieb:
    Kann man das nicht vielleicht so umschreiben, dass es auch Klassen dokumentieren kann?
    Das gibt es bereits und Links zu Tools die das können stehen 1 Post weiter oben...

    Ansonsten kann man natürlich das Script erweitern, was aber keinen Sinn hat, da es ja schon fertige Tools gibt.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!