位置: 编程技术 - 正文

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

  • 受票方与付款方不一致
  • 印花税核定依据和核定比例
  • 报关单保费000/0.1/1
  • 发票专用章盖在收据上有法律效益
  • 往法人账户转备用金
  • 合伙制创投企业
  • 个体工商户税收怎么算
  • 合并会计报表编制讲解视频
  • 准予抵扣的进项税额计算公式
  • 租房的装修费怎么入账
  • 支付房屋租金计入什么会计科目
  • 发票销项负数的会计分录怎么做?
  • 忘记申报印花税,但是公司已经注销了怎么办
  • 增值税发票过期了税金怎么办
  • 高速公路通行费发票怎么开
  • 注册资本越大越有实力
  • 银行汇票的背书转让金额
  • 已付款未收到发票
  • 母公司并购子公司需要股东会决议吗
  • 新公司没有实收资本,他的钱从哪来
  • 建筑企业预收的工程款会计分录
  • 小微企业增值税减免政策
  • 未开票收入计入预收账款
  • 关联企业借款利息税前扣除
  • 工商局查社保吗
  • 如何关闭windows10自动更新
  • thinkphp获取数据库数据
  • 查补税款有未缴纳怎么办
  • 外币交易犯法吗
  • PHP生成静态页面
  • php floor()
  • php生成时间戳
  • php代码检测
  • php用在哪些方面
  • 应交税费应交增值税销项税额
  • 企业计提养老保险分录
  • 建筑业先预缴还是先扣税
  • 个人工程款收入算是工资流水吗
  • 金税盘 解锁
  • 帝国cms使用手册
  • php屏蔽ip
  • 恢复从回收站已经清除的文件
  • 工程施工的间接费用如何归集分配
  • 出差会计处理
  • 母公司合并子公司报表
  • 小规模纳税人出租不动产免征增值税
  • 3%减按2%征收增值税是什么意思
  • 港币转人民币怎么算
  • 不含税转换
  • 内账税金如何做分录
  • 企业发生坏账损失时,在当期确认坏账损失
  • 抵货款怎么做账
  • 商业汇票到期无法兑现
  • 教材出版 技术咨询服务费
  • 减免增值税如何申报
  • 资产负债表与利润表的勾稽关系公式
  • 应交税费应交增值税已交税金怎么用
  • 固定资产明细账怎么填
  • 固定资产折旧完了怎么做账
  • u盘怎么安装win2012
  • xp系统可以双屏吗
  • win8更新win8.1
  • solaris 11.4
  • xp的命令提示符在哪
  • pkg-config命令
  • win10开机蓝屏提示修复
  • jquery的使用
  • opengl metal
  • 简述ajax
  • unity按钮函数
  • diy相册设计
  • javascript要学到什么程度
  • jquery导入
  • python3 flask
  • javascript Slip.js实现整屏滑动的手机网页
  • python中的迭代器
  • 关于加强税务稽查工作的思考
  • 公司被分立,应将分立后的单位
  • 深圳国税app官方下载
  • 税务总局全国增值税发票查验平台
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设