Mailinglisten-Archive |
Hallo! Also, erstmal legt man in /ext ein unterverzeichniss seiner Wahl (hier: test) an. Darin erstellt man die Datei test.c mit folgendem Inhalt: #include "php.h" ZEND_FUNCTION(first_module); zend_function_entry firstmod_functions[] = { ZEND_FE(first_module, NULL) {NULL, NULL, NULL} }; zend_module_entry firstmod_module_entry = { "First Module", firstmod_functions, NULL,NULL,NULL,NULL,NULL, STANDARD_MODULE_PROPERTIES }; #if COMPILE_DL DLEXPORT zend_module_entry *get_module(void) {return(&firstmod_module_entry); } #endif ZEND_FUNCTION(first_module) { zval retval; zval *new_string; char *string_contents = "echo 'Hier ist mein String'"; MAKE_STD_ZVAL(new_string); new_string->type = IS_STRING; new_string->value.str.len = strlen(string_contents); new_string->value.str.val = estrdup(string_contents); zend_eval_string("function test() { echo 'test'; }", NULL); RETURN_BOOL(1); } Wobei function test... natürlich jeder beliebige php code sein kann. Ich weiß auch nicht was man in der Datei davon noch weglassen kann (den string_contents sicher), aber ich habe recht lange rumprobiert weil ich keine Ahnung von C habe und so klappte es dann am Ende. Kompilieren kann man das dann mit cc -fpic -DCOMPILE_DL=1 -I. -I.. -I../Zend -c -o test/test.lo test/test.c cc -shared -L/usr/local/lib -rdynamic -o test/test.so test/test.lo Dann steht test.so als Modul zur Verfügung und kann mit dl("test.so") eingebunden werden. Dann noch schnell first_module(); aufrufen und schon steht die Funktion test(); zur Verfügung. Natürlich könnte man noch mit if usw. unterscheidungen machen und jeweils anderen Code ausführen. Auch könnte man später Funktionen ganz in C implementieren was vielleicht auch der Performance zugute kommt. Hoffe das ist einigermaßen verständlich, Matthias P.S.: Die Idee ist mir auf dem php-Kongress gekommen und den Code habe ich aus dem allseits bekannten php4 Buch und mit Hilfe von Zeev so zusammengestückelt. > -----Original Message----- > From: php-admin_(at)_php-center.de [mailto:php-admin_(at)_php-center.de]On Behalf > Of Ron Opitz > Sent: Tuesday, December 05, 2000 12:14 PM > To: php_(at)_php-center.de > Subject: Re: [php] RE: [php] Script an Kunden weitergeben - Mißbrauch > verhindernerhindern > > > Hallo Matthias, > > Deine Art den PHP-Code einzubetten hört sich sehr interessant an. > Ich hätte Interesse daran. Hast Du dazu schon eine Doku oder > ähnliches? Was sind die Voraussetzungen? > > Gruss Ron >
php::bar PHP Wiki - Listenarchive