位置: 编程技术 - 正文

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

发布时间:2023-12-17

推荐整理分享如何使用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)的理解(谈谈你对人民美好生活的理解)

  • 出借包装物收到押金
  • 其他收益和营业收益
  • 税务局买税盘
  • 财务费用中的汇兑收益增加的原因
  • 法人把自己的车租给公司交什么税
  • 同一控制下企业合并和非同一控制下企业合并的区别
  • 出口企业免抵税额在增值税申报表填写附表5
  • 停业的纳税人还交税吗
  • 房地产经营税金计算公式
  • 材料亏损怎么做会计分录?
  • 资本金利润率多少
  • 委托加工分装农药的委托人应当取得相应的
  • 增值税普票跨年重开风险
  • 股东放弃本企业股权
  • 非独立核算的分公司注销流程
  • 设备服务费是什么
  • 个体户金税盘清卡失败怎么办
  • 药企常见税务风险及措施
  • 一般户可以收货款么
  • 预缴所得税需要结转吗
  • 这个月发票领完了,还可以领吗?
  • 企业取得免税收入怎么算
  • 开业庆典礼仪费计入什么科目?
  • 营业费用包括哪些明细科目内容
  • 转让长期股权投资怎么算
  • 利润总额为负数净利润怎么算
  • 分支机构年度终了必须由总机构负责合并汇总纳税吗?
  • 事业单位接受捐赠的货币资金在财务会计中确认捐赠收入
  • 应付福利费科目
  • macos monterey值得安装吗
  • 腾讯电脑管家网络修复
  • 收到销售折让销售怎么做
  • 路由器网速慢怎么设置
  • 销售购物卡如何交税
  • 自产产品用于业务招待 如何申报企业所得税
  • 逾期未申报如何申报
  • 涉税服务实务重点总结
  • 存放同业属于什么业务
  • vue3+element-plus Dialog对话框的使用 与 setup 写法的使用
  • 大沼泽地国家公园位于哪个城市
  • 在妈妈身边的说说
  • php上传照片
  • php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
  • mysql的间隙锁与排他锁
  • 查补税款
  • 大额的维修费用怎么摊销
  • 建筑工程企业所得税预缴
  • 企业补提以前年度未提的坏账准备
  • java--IO流 ☞ 字节流
  • 材料可变现净值为什么不减去材料的销售费用
  • 主营业务收入和销售费用的区别
  • 管理费用二级科目明细可以自己设置吗
  • 生产企业免抵退税实例
  • 办理对公账户时间
  • SQL Server 2005 镜像构建手册(sql2005数据库同步镜像方案)
  • 待报解预算收入是什么意思,扣了钱
  • 开票有误重新开票怎么做分录
  • 新手任务税控设备申请
  • 股权收购协议书实际案例
  • 付了电费当月没有收到发票
  • 其他应付款在贷方表示什么
  • 招待费如何做账科目
  • 取得投资款缴纳企业所得税吗
  • 金税盘缴销发票
  • 不得从销项税额中抵扣的进项税额,不得计提加计抵减额
  • 股权关系怎么描述
  • 增值税系统技术维护费 减免政策
  • wind如何安装
  • 文本效果设置在哪
  • xp系统找不到搜索功能
  • fedora29
  • win7系统如何安装蓝牙驱动
  • linux epub阅读器
  • win7专用字符编辑程序
  • javascript常用函数大全
  • Jquery实现$.fn.extend和$.extend函数
  • 安卓开发常用代码
  • javascript面向对象编程
  • 哈尔滨国税局待遇怎么样
  • 电子客票号码8768是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号