位置: 编程技术 - 正文

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

  • 多交了企业所得税,下年度退税,需要更正撒意思
  • 服装加工费税收编码
  • 完税证明是可以抵扣吗
  • 购买理财产品是什么意思?
  • 买车要交哪些税收
  • 合伙企业分配利润如何纳税
  • 建筑公司劳务分包抵扣分录
  • 个体户可以开多个银行账户吗
  • 公司费用计入什么科目
  • 灭火器属于什么经营范围
  • 火车票增值税申报表怎么填
  • 外贸企业出口销售通常采用
  • 税收的基本特点有
  • 委托收款背书和转让背书
  • 公司注销留抵税额税法规定
  • 企业所得税成本确认原则
  • 差额征税发票如何做分录
  • 足疗发票税点
  • 高新技术企业所得税税率
  • 加计扣除汇算清缴怎么调减
  • 预缴时弥补的以前年度亏损是会计亏损吗?
  • 企业ci
  • 小规模收到专票要做进项税额转出吗
  • 减免增值税可以税前扣除吗
  • 股票派息后会除权吗
  • 预付工程款如何计提坏账
  • 预付款无法收回账务处理
  • PSof1.exe - PSof1是什么进程 有什么作用
  • php冒泡法排序
  • 代理记账费用计入什么会计科目
  • 对于企业已经入账而银行尚未入账
  • vue element ui教程
  • php连接
  • react 组件化
  • php和python结合
  • 基于thinkphp开发的框架
  • 长投转可供
  • 外请专家讲课费如何交税
  • 桶装矿泉水计入什么科目
  • 个税赡养老人分摊方式怎么更改
  • 小规模纳税人企业所得税怎么算
  • 赊销应收款余额怎么算
  • 同一控股下并合并的股票
  • 出口货物进项税额转出的原理
  • 退货销售折让会计分录
  • 快递代收货是货到了吗
  • 收到去年所得税汇算清缴退税账务处理
  • 主营业务收入转入什么科目
  • 企业内部银行转账怎么记账
  • 购买汽车保险费是否做入固定资产
  • 房地产企业销售商品房增值税税率
  • 土地增值税怎么预交税款
  • php连接mysql数据库的几种方式及区别
  • mssql in
  • window系统安装流程
  • 扩展卷不相邻怎么办
  • freebsd的软件多吗
  • windows7与xp共享文件夹
  • 支付宝安全控件可以卸载吗
  • ubuntu怎么打开系统设置
  • win批处理命令
  • win10系统打不开jpg图片
  • window98到windows10
  • win10系统出现蓝色框框
  • Mac系统中文件的唯一id
  • 在linux系统中获取帮助信息的命令为
  • 为wdcp面板的lnmp服务器添加ipv6支持的方法介绍
  • unity ar sdk
  • 字符串反转C语言代码
  • Unity3D游戏开发毕业论文
  • 批处理改ipv4地址
  • jquery提供了三种删除节点的方法,分别是什么
  • js随机生成一个整数
  • jQuery添加类名
  • 芜湖办税服务厅
  • 溧阳北站规划图
  • 深圳国税地税怎么申报
  • 北京社保三方协议
  • 房产税交错了能否退款
  • 2018年申报时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设