首页 > 开发 > PHP > 正文

如何使用PHP Embed SAPI实现Opcodes查看器

2024-05-04 23:40:15
字体:
来源:转载
供稿:网友
这篇文章主要介绍了如何使用PHP Embed SAPI实现Opcodes查看器的相关资料,需要的朋友可以参考下
 

PHP提供了一个Embed SAPI,也就是说,PHP容许你在C/C++语言中调用PHP/ZE提供的函数。本文就通过基于Embed SAPI实现一个PHP的opcodes查看器。

首先,下载PHP源码以供编译, 我现在使用的是PHP5.3 alpha2

进入源码目录:

 ./configure --enable-embed --with-config-file-scan-dir=/etc/php.d --with-mysql  --with-config-file-path=/etc/
 ./make
 ./make install

最后,记得要将生成的libphp5.so复制到运行时库的目录,我直接拷贝到了/lib/, 否则会在运行你自己的embed程序的时候报错:

./embed: error while loading shared libraries: libphp5.so: cannot open shared object file: No such file or directory

如果你对PHP的SAPI还不熟悉的话,我建议你看看我的这篇文章:深入理解Zend SAPIs(Zend SAPI Internals)
这个时候,你就可以在你的C代码中,嵌入PHP脚本解析器了, 我的例子:
 

  1. #include "sapi/embed/php_embed.h" 
  2. int main(int argc, char * argv[]){ 
  3.  PHP_EMBED_START_BLOCK(argc,argv); 
  4.  char * script = " print 'Hello World!';"
  5.  zend_eval_string(script, NULL, 
  6.           "Simple Hello World App" TSRMLS_CC); 
  7.  PHP_EMBED_END_BLOCK(); 
  8.  return 0; 
?
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表