php的内核扩展怎么写?
来源:互联网 发布:自制旅游攻略软件 编辑:程序博客网 时间:2024/05/17 02:33
方法一、用c去写php的内核扩展,然后php就像调用原生函数一样调用
举例如下
php_crypto.c
#include "stdio.h"
#include "php.h"
#include "php_crypto.h"
#include "netpayclient.h"
PHP_FUNCTION(SignOrder)
{
pval *MerId,*MerKeyFile,*OrdId,*TransAmt,*MerDate,*TransType,*GateId,*MerPriv,*BgRetUrl,*PageRetUrl;
char *ChkValue=NULL;
char tmp[]="/n";
int err;
if(ARG_COUNT(ht)!=10||getParameters(ht, 10,&MerId,&MerKeyFile,&OrdId,&TransAmt,
&MerDate,&TransType,&GateId,&MerPriv,&BgRetUrl,&PageRetUrl) == FAILURE)
{
WRONG_PARAM_COUNT;
}
ChkValue=emalloc(256*sizeof(char));
if(ChkValue==NULL)
RETURN_LONG(-1);
convert_to_string(MerId);
convert_to_string(MerKeyFile);
convert_to_string(OrdId);
convert_to_string(TransAmt);
convert_to_string(MerDate);
convert_to_string(TransType);
convert_to_string(GateId);
convert_to_string(MerPriv);
convert_to_string(BgRetUrl);
convert_to_string(PageRetUrl);
err=SignOrder(MerId->value.str.val,MerKeyFile->value.str.val,OrdId->value.str.val,
TransAmt->value.str.val,MerDate->value.str.val,TransType->value.str.val,
GateId->value.str.val,MerPriv->value.str.val,BgRetUrl->value.str.val,PageRetUrl->value.str.val,ChkValue);
return_value->type=IS_STRING;
if(err<0)
{
RETURN_LONG(err);
}
else
{
return_value->value.str.len=256;
return_value->value.str.val=ChkValue;
}
}
php_crypto.h
#ifndef _php_crypto_h
#define _php_crypto_h
PHP_FUNCTION(SignOrder);
#endif
将文件php_crypto.h, php_crypto.c拷贝到php_src/ext/standard/目录下然后相应修改basic_functions.c和basic_functions.h
修改Makefile文件。然后make ,make install编译下就好了!
方法二、用c写一个标准的sock服务器,php作为sock客户机,通过你自己定义的协议访问。
- php的内核扩展怎么写?
- PHP内核的学习--创建PHP扩展
- 用c写PHP的扩展接口
- Windows下写PHP的C扩展
- 写一个PHP扩展
- c++ 写 php 扩展
- 编译php源码时,怎么加上自定义的一些扩展
- 用C++写php扩展
- 零基础写PHP扩展
- 用C语言写PHP扩展的步骤
- 在Windows下写PHP的C扩展
- 在Windows下写PHP的C扩展
- 用c/c++写php扩展模块的杂想
- 在Windows下写PHP的C扩展
- 自己写PHP扩展之实现类的继承
- 用c写一个提取股票信息的php扩展
- 在Windows下写PHP的C扩展
- PHP扩展开发-写一个简单的框架
- 浮点数比较
- 超越JAVA -Answer
- php包裹第三方的扩展
- JFileChooser ,让你的图片选择可以预览图片内容
- 宏与符号常量
- php的内核扩展怎么写?
- Axure RP Pro - 相关问题 - 表格的单元格不能使用动作设置文字
- 讲解简单工厂模式
- Windows的用户管理中的用户模拟
- Facebook 加入 OpenID 阵营的 5 大利好
- Axure RP Pro - Master主控文档 - Expand.Collapse伸缩控件
- VISTA下VS调试 出现“Internet Explorer 无法显示该页面”错误
- devexpress编辑元件开放ImmediateEditor后如何避免鼠标滚轮的误操作
- PPT提取文本