Toon posts:

[php] zoeken naar functies in een phpscript

Pagina: 1
Acties:
  • 36 views sinds 30-01-2008

Verwijderd

Topicstarter
ff anders formuleren dan maar:

Ik heb een paar php files, waarvan ik wil weten (zonder ze includen) welke functies daarin worden gemaakt (dus userfunctions).

Ik heb 't nu zover dattie alle submappen langsgaat en daar alle php files uit vist en dat bestand dan met een filepointer opend.

Maar, hoe filter ik alle functienamen er uit? dus het gedeelte tussen "function" en "()"??

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 21-08 15:53

Super_ik

haklust!

gewoon zoeken naar function en dan t totdat je () tegenkomt eruit vissen :)

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
De PHP file regel voor regel inlezen en de regel trimmen.
Begint de regel met function weet je dat op die regel een functie definitie begint.
Dit is volgens mij redelijk safe.

It’s nice to be important but it’s more important to be nice


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
JonkieXL schreef op 13 juni 2003 @ 14:16:
De PHP file regel voor regel inlezen en de regel trimmen.
Begint de regel met function weet je dat op die regel een functie definitie begint.
Dit is volgens mij redelijk safe.
En als je nu eens een programmeur hebt die als volgt z'n functies schrijft:

code:
1
2
function
DitIsMijnfunctie()

:P

https://fgheysels.github.io/


Verwijderd

Topicstarter
Dan krijgte parse fout dacht ik zo :)

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22-08 10:45

mulder

ik spuug op het trottoir

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Bijna, ik wil de code niet includen, dus de functies bestaan niet volgens PHP

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Verwijderd schreef op 13 June 2003 @ 14:23:
Bijna, ik wil de code niet includen, dus de functies bestaan niet volgens PHP
Nee je moet ook een regexp loslaten op de include-file :)

Verwijderd

Topicstarter
k, preg_match_all bedoel je? En wat voor regexp had je in gedachten?

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!


.modbreak
De eerste persoon die hieronder exacte code plaatst kan problemen verwachten.
De volgende persoon die hieronder om exacte code vraag kan ook problemen verwachten.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Lees je bestanden in in een variabele en haal hier vervolgens met ereg() de functies uit.
Ik zou je graag willen helpen, maar dat mag niet van rechter Dusty.
offtopic:
Mensen helpen is dus ook al verkeerd...

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

.userbreak
Dusty: je bent erg onredelijk in dit geval.
Bij deze exacte code, ik ben benieuwd welke problemen dat oplevert. Deze provocatie is bewust en bedoeld. Zodra GoT mensen gaat bannen vanwege behulpzaamheid is dit mijn laatste post (op een afscheidspost na).

PHP:
1
2
3
4
5
function checkFunctionsInFile($filename) {
    $funcs_old = get_defined_functions ();
    $funcs_new = eval("include('$filename'); return get_defined_functions ();");
    return array_diff($funcs_old, $funcs_new);
}

100% untested, ik weet niet eens zeker of het concept van een eval-prison werkt.

Een alternatieve aanpak is de regexp, onbetrouwbaar, maar voor eenvoudige zaken kan het voldoen.
PHP:
1
2
3
4
5
6
7
function checkFunctionsInFile($filename) {
    $handle = fopen ($filename, "r");
    $contents = fread ($handle, filesize ($filename));
    fclose ($handle);
    $result = preg_match_all('/function\s+([a-z0-9_]+)\s*\(/i',$contents);
    return $result[1];
}

100% untested, maar ik weet zeker dat het concept werkt, tenzij je strings hebt met een functiedescriptie er in, of conditionele declaraties. Ook runtime functiedeclaraties lust 'ie niet, net als extra includes vanuit het betreffende bestand.

[ Voor 73% gewijzigd door kvdveer op 13-06-2003 18:20 ]

Localhost, sweet localhost


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Okay, aangezien met het hier helemaal verkeerd opvangt.

Ik wou voorkomen dat dit topic compleet ontaarde in een "Script-request."

Dan nu maar wat ik meteen had moeten doen ipv van mijn modbreak:

Topic gaat op slot, script requests zijn niet toegestaan, bovendien is het antwoord hoe het is op te lossen al gegeven door super_ik, de eerste persoon die reageerde op dit topic.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1

Dit topic is gesloten.