以前的项目被移植到外面公司开发,人家使用的是PHP。以前通讯端调用了一些压缩、加密、解密的动态连接库。我是用C#调用DLL的方法。人家觉得PHP不知道怎么调用。

花了一个小时随便做了一个DEMO,正好不去开例会 :)

首先上网看了看PHP的基本语法,然后开了一个APACHE和PHP合成安装包。试验了一下ECHO

然后上网找了找资料,外部调用,大部分都是说要扩展PHP环境,短短时间内我自然无法做到这种层次,更何况我对这种不能调试的脚本语言感觉不是很好。

最后用的是外部执行程序方法:

一个简单的压缩算法执行程序

#include "windows.h"
#include "stdio.h"
#include "libzlib.h"

typedef unsigned long ULONG;
typedef unsigned char BYTE;
int Comp(BYTE * bIn,int nIn,BYTE * bOut,int& nOut)
&leftsign;
 BYTE *btmp;
 int rtn=zlib_compress(&btmp,(ULONG*)&nOut,bIn,(ULONG)nIn);
 memcpy(bOut,btmp,nOut);
 return rtn;
&rightsign;

int main(int argc, char* argv[])
&leftsign;
 int olen=0;
 BYTE *bin=(BYTE *)argv[1];
 BYTE bout[255];
 Comp((BYTE *)argv[1],strlen(argv[1]),bout,olen);
 char st[3];
 for (int i=0;i<olen;i++)
 &leftsign;
  sprintf(st,"%02x",bout[i]);
  printf(st);
 &rightsign;
 // getchar();
 return 0;
&rightsign;

一个简单的PHP调用:

<?
 $usec="zlib.exe";
 $useca="M:\\\\phptst\\\\zlib\\\\Debug\\\\".$usec;
 $usec=" 111111111111111111111111111111111111";
 $useca=$useca.$usec;
 $useca=$useca.$usec;
 $useca=passthru($useca);
 echo $useca
?>

还有好几个执行函数,没有仔细看

结果:78da3334240c007f9e06e5

历史博文

标签:, ,
四月 24, 2005 at 10:05 上午 by yippee 1,104 次
Category: Dev
Tags: , ,