位置: 编程技术 - 正文

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

  • 计提坏账为什么是递延所得税资产
  • 公司出售房产缴纳税金如何凭证
  • 房产税税额怎么算
  • 交了9个点的工程增值税不可以抵扣吗
  • 摊余成本的构成内容
  • 研发费用可以列支成本吗
  • 专家住宿费入什么科目
  • 什么叫欠账
  • 建筑业工会经费0.12% 怎么来的
  • 固定资产清理是备抵账户吗
  • 预缴企业所得税会计处理
  • 企业取得5%的房产增值税发票是否可以抵扣呢?
  • 扣除工资作为违约金
  • 城建税和教育费附加的计税依据是什么
  • 企业收到分红款要交税吗
  • 物业公司收小区物业费吗
  • 银行贷款利息可以减免吗
  • 营改增后如何纳税
  • 销售淀粉的税率
  • 审计报告可以不披露上年数吗
  • 公司年终分红如何入账
  • 福利费应计入什么费用
  • 已收发票是什么意思
  • 收到利息收入会计分录怎么写
  • 公司食堂支出计入什么科目
  • 遗失发票如何处理好
  • 无形资产商标设计图片
  • 比较常见的病有哪些
  • 关闭系统自动调屏幕亮度
  • 为什么WIN10系统打在画面进不去
  • 支付汽车耗材费怎么入账
  • rsync inotify sersync
  • 固定资产未提完折旧停止经营怎么处理
  • 固定资产减少和固定资产折旧
  • 产品注册费会计科目
  • 计提折旧事考虑了残值净值怎么算
  • php 时间
  • 下脚料收入计入什么科目
  • 上年折旧费多计提了,本年怎么调
  • 应收账款等于什么加什么
  • 交易性金融资产包括哪些项目
  • mongodb安装教程图解
  • mysql中用户和权限的作用
  • php用户评论
  • 会议期间的餐费算会务费吗
  • 支付给临时工的费用
  • sql 判断字符串中是否包含数字
  • 合同负债 案例
  • 红字发票如何做账
  • 用党委的经费买房可以吗
  • 应收账款如何做平
  • 工程服务预交税怎么算
  • 12月结账后要年度结转吗
  • 主营业务成本的贷方是什么
  • 待清算商户消费款项是什么
  • mysql中使用instr进行模糊查询方法介绍
  • Centos7下MySQL安装教程
  • vmware虚拟机怎么克隆
  • 如何创建ubuntu安装教程
  • ubuntu软件安装
  • win7电脑频繁自动重启是什么原因造成的
  • win10开始无法打开
  • centos查看文件目录
  • win7系统开启无线服务
  • 把mac屏幕切换到桌面desktop
  • win2008怎么查看隐藏文件
  • rhel6.5安装
  • 缺少系统操作怎么办
  • bios查看电脑配置信息
  • js禁用键盘事件
  • shell脚本遍历文件
  • Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
  • javascript中checkbox使用方法实例演示
  • 21个JavaScript事件(Events)属性汇总
  • mac配置android开发环境
  • 叉车需要手续吗
  • 3.0排量 车船税
  • 南京税务局 局长
  • 武汉税务证怎么网上申请
  • 保险赔款是免征还是不征?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设