位置: 编程技术 - 正文

如何使用PHP Embed SAPI实现Opcodes查看器(如何使用定向流量)

编辑:rootadmin

推荐整理分享如何使用PHP Embed SAPI实现Opcodes查看器(如何使用定向流量),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何使用灭火器,如何使用3D查看器,如何使用灭火器,如何使用灭火器,如何使用灭火器,如何使用chatgpt,如何使用翻译器在线翻译,如何使用chatgpt,内容如对您有帮助,希望把文章链接给更多的朋友!

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脚本解析器了, 我的例子:

然后就是要指明include path了,一个简单的Makefile

编译成功以后, 运行,我们可以看到, stdout输出 Hello World!

基于这个,我们就可以很容易的实现一个类似于vld的Opcodes dumper:首先我们定义opcode的转换函数(全部的opcodes可以查看Zend/zend_vm_opcodes.h);

如何使用PHP Embed SAPI实现Opcodes查看器(如何使用定向流量)

然后定义zval和znode的输出函数:

然后定义op_array的输出函数:

最后,就是程序的主函数了:

编译,运行测试脚本(sample.php):

命令:

得到输出结果(如果你对下面的结果很迷惑,那么建议你再看看我的这篇文章:深入理解PHP原理之Opcodes):

Script: sample.php

opnum line opcode op1 op2 result 0 2 ZEND_ECHO "laruence" 1 4 ZEND_RETURN 1

呵呵,怎么样,是不是很好玩呢?

谈谈你对Zend SAPIs(Zend SAPI Internals)的理解 SAPI:ServerabstractionAPI,研究过PHP架构的同学应该知道这个东东的重要性,它提供了一个接口,使得PHP可以和其他应用进行交互数据。本文不会详细介绍每

深入php内核之php in array 先给大家介绍phpinarray函数基本知识热热身。定义和用法in_array()函数在数组中搜索给定的值。语法in_array(value,array,type)参数描述value必需。规定要在数组

PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法 PHP用mb_string函数库处理与windows相关中文字符昨天想批处理以前下载的一堆文件,把文件里的关键内容用正则匹配出来,集中处理。在操作文件时遇到一

标签: 如何使用定向流量

本文链接地址:https://www.jiuchutong.com/biancheng/276039.html 转载请保留说明!

上一篇:深入理解PHP内核(二)之SAPI探究(php的核心)

下一篇:谈谈你对Zend SAPIs(Zend SAPI Internals)的理解(谈谈你对人民美好生活的理解)

  • 经销商返点方案范文
  • 民办学校房屋要求
  • 辞退福利是指
  • 交通费怎么抵扣进项税
  • 支票盖财务章盖在哪里
  • 叉车上牌流程需要多少时间
  • 合同上怎么注明开具6%的含税普通发票
  • 计提坏账又收回
  • 中小企业免税证明
  • 债务重组损失是否属于营业外支出
  • 工程分包开具发票怎么开
  • 保教费免征增值税政策
  • 个人收到的国外短信
  • 应付未付的职工工资属于什么会计科目
  • 软件技术服务费算无形资产吗
  • 期末留抵税额小于当期免抵退税额是什么意思
  • 补交增值税如何入账
  • 开出的发票什么情况下需要补税?
  • 出口退税是按进项税额吗
  • 高新企业研发投入后产出增加
  • 发票开错重开怎么做账?
  • 一般纳税人交税标准是多少
  • 标准差超过多少不合理
  • 预提费用支付是指什么
  • 注销企业基本户需要先注销一般户吗
  • 提前支付的费用记账
  • php数组函数输出《咏雪》里有多少"片"字
  • 喝咖啡的好处和坏处 女性
  • php composer自动加载
  • citespace分析derwent
  • yolov3网络结构详解
  • 未分配现付是什么意思
  • php往数组中添加元素
  • 公立医院增值税抵扣
  • 调整以前年度损益调整分录费用调增
  • 发票已开,款未到的会计分录
  • 增值税发票校验码在哪个位置
  • php调用微信扫描二维码
  • 税务局批扣是什么意思
  • 织梦怎么样
  • 销项税大于进项税当月交税吗
  • 其他综合收益什么情况下转入留存收益
  • 法人和自然人有什么区别通俗一点
  • 应付账款和预付账款的会计分录
  • linux开启php服务
  • php手机验证码验证
  • 机关党建经费提取比例
  • 应交税费增值税销项税
  • 消防设备计入什么科目
  • sql 字符串
  • 汇算清缴银行手续费放哪里
  • 汇票和本票的区别是
  • 贷款的融资担保费
  • 公司买的车如何入账举例说明
  • 企业用地手续办理流程
  • 年末递延所得税资产的账面余额
  • 普通发票作废要去税局吗
  • 投资性房地产摊销从什么时候开始
  • 一个分页存储过多的文件
  • WIN10开始菜单点击鼠标右键没反应的处理方法
  • linux系统对硬件要求高吗
  • linux回退
  • Linux内核级别的资源隔离机制是
  • 启动windows安全中心
  • linux Intel 845集成显示驱动下载
  • dos批处理实例
  • js动态表单
  • cmd命令是干嘛的
  • 安装两个linux
  • nodejs init
  • 安卓拍照闪退
  • jquery.load()方法,刷新网页
  • jquery获取指定元素
  • 湖北省税务稽查局领导班子名单
  • 纳税人谈感受
  • 江苏省生育登记服务网
  • 陕西国家税务总局官网登录入口
  • 空置房物业收费标准
  • 基层税收工作的建议意见
  • 科研用地是否缴纳土地使用税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设