所以我决定为php编写一个扩展名。一切似乎都很好,除了我被困在一个小问题上。
我有php-5.4.9源代码。有ext / standard / mail.c文件与awesome功能
PHPAPI int php_mail(char *to, char *subject, char *message, char *headers, char *extra_cmd TSRMLS_DC)
在我的扩展,在acme.c我已经包括
...
#include "php.h"
#include "ext/standard/php_mail.h"
#include "php_ini.h"
...
所以php_mail感觉很好,工作正常。但是,显然,我想使用mail.c开始的代码,从101开始,结束于189(http://pastie.org/5444192 5-93粘贴中的相应行)。所以我抓住了自己的想法(这在某些方面很尴尬)为什么不调用PHP_FUNCTION(邮件)?目前我找不到这个宏,实际上我想知道实现这个想法的最好方法。
我的内部工程师(这是新手)建议我使用call_user_function
ZEND_API int call_user_function(HashTable *function_table, zval **object_pp, zval *function_name, zval *retval_ptr, zend_uint param_count, zval *params[] TSRMLS_DC);
但是我不能弄清楚如何调用它。
问题!调用PHP_FUNCTION定义的函数怎么样(mail函数的例子非常受欢迎)?