php 扩展调用 php 标准函数 及 操作全局变量
2012-02-22 16:29
351 查看
PHP_FUNCTION(md52) { zval **strtomd5; if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &strtomd5) != SUCCESS)) { WRONG_PARAM_COUNT; } zval *funname,*ret_ptr = NULL; MAKE_STD_ZVAL(funname); ZVAL_STRING(funname, "md5", 1); zval **param[1]; param[0] = strtomd5; call_user_function_ex(EG(function_table), NULL, funname, &ret_ptr, 1, param, 0, EG(active_symbol_table)); //call_user_function_ex(EG(function_table), NULL, funname, &ret_ptr, 1, param, 0, NULL); zval *new_variable; MAKE_STD_ZVAL(new_variable); ZVAL_LONG(new_variable,317); ZEND_SET_SYMBOL(&EG(symbol_table), "new_variable_name", new_variable); RETVAL_ZVAL(ret_ptr, 1, 0); zval_ptr_dtor(&funname); MAKE_STD_ZVAL(funname); ZVAL_STRING(funname, "gg", 1); char *string_contents = "new_variable_name"; zval *var_name; MAKE_STD_ZVAL(var_name); ZVAL_STRING(var_name, string_contents, 1); zend_printf("c_ext *strtomd5 = %s, func=%s\n", var_name->value.str.val , funname->value.str.val); param[0] = &var_name; if(call_user_function_ex(EG(function_table), NULL, funname, &ret_ptr, 1, param, 0, EG(active_symbol_table)) != SUCCESS) { zend_error(E_ERROR, "Function call failed"); } zend_printf("c_ext new_variable = %d\n", new_variable->value.lval); efree(funname); efree(var_name); }
<?php
echo md52('123qwe');
?>
相关文章推荐
- php 扩展调用 php 标准函数 及 操作全局变量
- php 扩展调用 php 标准函数 及 操作全局变量
- 关于php扩展中使用ini配置和使用全局变量
- PhpForm表单相关的超全局变量操作
- php扩展 c,传参,传数组,zvar类型,全局变量
- [李景山php] PHP扩展开发系列教程2-设置全局变量
- php自定义函数调用全局变量的另类方法
- PHP扩展开发-04-全局变量以及部分宏分析
- php自定义函数调用全局变量的另类方法
- dede定义全局变量(include/common.inc.php)及调用方式
- 织梦dede:php标签中调用其他普通标签和页面相关变量及全局配置的变量
- PHP - Manual手册 - Function Reference函数参考 - Variable and Type Related Extensions变量和类型相关扩展 - Variable handling变量操作 - Variable handl
- PHP扩展中访问全局变量$_POST,$_GET,$_SERVER等
- php部分(查看文件、建立站点、语法变量、变量的几个方法、“全局局部变量的调用”、static、函数参数的作用域);
- C语言程序设计实践(OJ)-全局变量、文件操作
- php 的全局变量与局部变量
- PHP变量与类型扩展之类与对象
- PHP 中的超全局变量
- [php_12]PHP之Mysql操作php7安装pdo_psql扩展
- PHP面向对象方式操作数据库(扩展增强库MySQLi)