Internen Funktionen sind im index internal während der Benutzer-definierten Funktion stehen im index user.
Beachten Sie, dass diese Ausgabe alle Funktionen, die deklariert wurden, zurück, um diesen Anruf. Das bedeutet, dass, wenn Sie include() - Dateien mit Funktionen, werden diese in der Liste als gut. Es gibt keine Möglichkeit der Trennung von Funktionen pro-Datei andere als sicher, dass Sie nicht include() jede Datei vor dem Aufruf von get_defined_functions().
Wenn Sie müssen die Liste der Funktionen pro Datei, die folgenden versucht zum abrufen einer Liste der Funktionen, die durch das Parsen der Quelle.
get_defined_functions() ruft alle meine erklärten Funktionen aus allen Dateien, die nicht aus genau einer Datei! Siehe meine aktualisierte Antwort, die Ihnen eine Liste der verfügbaren Funktionen pro-Datei-basis. Wer mit dieser möglicherweise hinzufügen möchten T_CURLY_OPEN um den Schalter zu fangen Zeichenfolgen wie "hello {$name}"
Können Sie get_defined_functions (), bevor und nachdem Sie die Datei, und sehen, was Hinzugefügt wird, das array ein zweites mal. Da Sie erscheinen in der Reihenfolge der definition, können Sie einfach den index verwenden, wie diese:
Dann können Sie eine Schleife durch, um zu finden, die Funktion Token mit den definierten Symbolen. Die Liste der Token gefunden werden kann http://www.php.net/manual/en/tokens.php
get_defined_functions() ruft alle meine erklärten Funktionen aus allen Dateien, die nicht aus genau einer Datei! aktualisiert. Sie möchten möglicherweise verwenden Sie token_get_all(). Wenn Sie umfasst und erfordert, die Funktionen definiert, die in den anderen Dateien werden ebenfalls in dieser Datei definierten.
Es gibt einen einfachen array, der alle Funktionsnamen. Wenn Sie nennen es, die in der bestimmten Datei, die Sie Scannen möchten, können Sie verwenden Sie einfach die folgende:
Gut für was auch immer Grund, wenn Sie brauchen, um dies zu tun, zeige ich Sie:
Beispiel-Datei: Functions.php (ich schrieb gerade einige zufällige Scheiße, nicht Mather, es funktioniert mit alles)
<?php
//gewoon een ander php script. door het gebruiken van meerdere includes kun je gemakkelijk samen aan één app werkenfunction johannes($fnaam, $mode, $array){switch($mode){case0:
echo "
<center>
<br><br><br><br><br>
he johannes!<br><br>
klik hier voor random text:<br>
<input type='submit' value='superknop' id='btn' action='randomding' level='0' loadloc='randomshit' />
<p id='randomshit'></p>
</center>
";break;case1:
echo "bouw formulier";break;case2:
echo "verwerk formulier";break;default:
echo "[Error: geen mode gedefinieerd voor functie '$fnaam'!]";}}function randomding($fnaam, $mode, $array){
$randomar = array('He pipo wat mot je!','bhebhehehehe bheeeee. rara wie ben ik?','poep meloen!','He johannes, wat doeeeeee je? <input type="text" name="doen" class="deze" placeholder="Wat doe je?" /> <input type="button" value="vertellen!" id="btn" action="watdoetjho" level="0" loadloc="hierzo" kinderen="deze"> <p id="hierzo"></p>','knopje de popje opje mopje','abcdefghijklmnopqrstuvwxyz, doe ook nog mee','Appien is een **p!!!!!! hahhahah<br><br><br><br> hahaha','Ik weet eiegelijk niks meer te verzinnen','echt ik weet nu niks meer','nou oke dan[[][(!*($@#&*$*^éäåðßð','he kijk een microboat: <br> <img src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcS_n8FH6xzf24kEc31liZF6ULHCn2IINFurlFZ_G0f0_F4sLTi74w" alt="microboat" />');
$tellen = count($randomar);
$tellen--;
$rand = rand(0, $tellen);
echo $randomar[$rand];}function watdoetjho($fnaam, $mode, $array){
$dit = $array['doen'];
echo "Johannes is: $dit";}?>
Haben wir 3 Funktionen, die hier drinnen:
johannes
randomding
watdoetjho
Aber wir rufen auch diese Funktionen:
zählen
rand
Wenn wir get_defined_functions bekommen wir alle Funktionen im Rahmen des Skripts. Ja die PHP-Funktionen sind getrennt vom Benutzer deklarierte, aber immer noch wollen wir von einer bestimmten Datei.
Wenn wir token_get_all erhalten wir eine große Menge an Daten, die wir brauchen, um separate erste.
Fand ich diese Nummer, die wir benötigen, um einige verbindungen innerhalb des array entsprechend der Benutzer-Funktionen. Sonst haben wir eine Liste mit allen php-Funktionen, die aufgerufen sind.
Den zahlen sind:
334 (Liste aller Benutzer deklarierte Funktionen)
307 (Liste aller Funktionsnamen)
Wenn wir filter-array nehmen alle 334 Elemente, die wir haben:
334 - | Funktion - | - 5
Aber wir brauchen den Namen der Funktion und aller array-Elemente sind im Zusammenhang mit der 3. Wert. So, jetzt müssen wir das filtern aller array-Elemente, die mit dem 3. Wert (5) und die Konstante Zahl 307.
Diese geben uns, so etwas wie dieses:
307 - | - johannes - | - 5
Nun in PHP wird es so Aussehen:
<?php
error_reporting(E_ALL ^ E_NOTICE);//Or we get these undefined index errors otherwise use other method to search array//Get the file and get all PHP language tokens out of it
$arr = token_get_all(file_get_contents('Functions.php'));//var_dump($arr); //Take a look if you want//The array where we will store our functions
$functions = array();//loop troughforeach($arr as $key => $value){//filter all user declared functionsif($value[0]==334){//Take a look for debug sake//echo $value[0] .' - | - '. $value[1] . ' - | - ' . $value[2] . '<br>';//store third value to get relation
$chekid = $value[2];}//now list functions user declared (note: The last check is to ensure we only get the first peace of information about the function which is the function name, else we also list other function header information like preset values)if($value[2]== $chekid && $value[0]==307&& $value[2]!= $old){//just to see what happens
echo $value[0].' - | - '. $value[1].' - | - '. $value[2].'<br>';
$functions[]= $value[1];
$old = $chekid;}}?>
Können Sie eine Liste der aktuell definierten Funktion mit
get_defined_functions()
:Internen Funktionen sind im index
internal
während der Benutzer-definierten Funktion stehen im indexuser
.Beachten Sie, dass diese Ausgabe alle Funktionen, die deklariert wurden, zurück, um diesen Anruf. Das bedeutet, dass, wenn Sie
include()
- Dateien mit Funktionen, werden diese in der Liste als gut. Es gibt keine Möglichkeit der Trennung von Funktionen pro-Datei andere als sicher, dass Sie nichtinclude()
jede Datei vor dem Aufruf vonget_defined_functions()
.Wenn Sie müssen die Liste der Funktionen pro Datei, die folgenden versucht zum abrufen einer Liste der Funktionen, die durch das Parsen der Quelle.
Nutzung auf eigene Gefahr.
Siehe meine aktualisierte Antwort, die Ihnen eine Liste der verfügbaren Funktionen pro-Datei-basis.
Wer mit dieser möglicherweise hinzufügen möchten
T_CURLY_OPEN
um den Schalter zu fangen Zeichenfolgen wie"hello {$name}"
InformationsquelleAutor Andrew Moore
Können Sie get_defined_functions (), bevor und nachdem Sie die Datei, und sehen, was Hinzugefügt wird, das array ein zweites mal. Da Sie erscheinen in der Reihenfolge der definition, können Sie einfach den index verwenden, wie diese:
Sie gespeichert mein Stunden-joachim
InformationsquelleAutor joachim
Können Sie die
get_defined_functions()
- Funktion, um alle definierten Funktion in Ihrem aktuellen Skript.Finden Sie unter: http://www.php.net/manual/en/function.get-defined-functions.php
Wenn Sie möchten, um die Funktionen in einer anderen Datei definiert ist, können Sie versuchen, mit http://www.php.net/token_get_all wie diese:
Dann können Sie eine Schleife durch, um zu finden, die Funktion Token mit den definierten Symbolen. Die Liste der Token gefunden werden kann http://www.php.net/manual/en/tokens.php
aktualisiert. Sie möchten möglicherweise verwenden Sie
token_get_all()
. Wenn Sie umfasst und erfordert, die Funktionen definiert, die in den anderen Dateien werden ebenfalls in dieser Datei definierten.InformationsquelleAutor mauris
Wenn Sie nicht besorgt über den Fang einige auskommentiert, ist das vielleicht der einfachste Weg:
InformationsquelleAutor pguardiario
Schrieb ich dieses kleine Funktion geben Sie die Funktionen in eine Datei.
https://gist.github.com/tonylegrone/8742453
Es gibt einen einfachen array, der alle Funktionsnamen. Wenn Sie nennen es, die in der bestimmten Datei, die Sie Scannen möchten, können Sie verwenden Sie einfach die folgende:
$functions = get_functions_in_file(__FILE__);
InformationsquelleAutor Tony Legrone
Löste ich dieses problem mit
array_diff
Update
Um die "echten" Funktionen Namen versuchen, diese
InformationsquelleAutor pleinx
Gut für was auch immer Grund, wenn Sie brauchen, um dies zu tun, zeige ich Sie:
Beispiel-Datei: Functions.php (ich schrieb gerade einige zufällige Scheiße, nicht Mather, es funktioniert mit alles)
Haben wir 3 Funktionen, die hier drinnen:
Aber wir rufen auch diese Funktionen:
Wenn wir
get_defined_functions
bekommen wir alle Funktionen im Rahmen des Skripts. Ja die PHP-Funktionen sind getrennt vom Benutzer deklarierte, aber immer noch wollen wir von einer bestimmten Datei.Wenn wir
token_get_all
erhalten wir eine große Menge an Daten, die wir brauchen, um separate erste.Fand ich diese Nummer, die wir benötigen, um einige verbindungen innerhalb des array entsprechend der Benutzer-Funktionen. Sonst haben wir eine Liste mit allen php-Funktionen, die aufgerufen sind.
Den zahlen sind:
Wenn wir filter-array nehmen alle 334 Elemente, die wir haben:
334 - | Funktion - | - 5
Aber wir brauchen den Namen der Funktion und aller array-Elemente sind im Zusammenhang mit der 3. Wert. So, jetzt müssen wir das filtern aller array-Elemente, die mit dem 3. Wert (5) und die Konstante Zahl 307.
Diese geben uns, so etwas wie dieses:
307 - | - johannes - | - 5
Nun in PHP wird es so Aussehen:
Ergebnis in diesem Fall:
InformationsquelleAutor botenvouwer
Erhalten der Liste der definierten und verwendeten Funktionen im code, mit kleinen nützlichen Datei-manager, können Sie code unten. Genießen Sie!
InformationsquelleAutor msegit
tun, gehören Sie zu der Datei und versuchen Sie, diese :
InformationsquelleAutor Haim Evgi