User Funktionen und deren Parameter auslesen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
auslese
beispiel
besten erfahrungen
brauche
code
definierten funktionen
dokumentieren
ergebnis
filter
funktion
http
klasse
match
null
parameter
post
tag
type
url
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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...
Kann man das nicht vielleicht so umschreiben, dass es auch Klassen dokumentieren kann?
Mfg webaffe -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage