位置: 编程技术 - 正文

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

  • 水电费进项税转出填在哪一栏位
  • 公司缴税怎么计算的
  • 增值税应纳税额的计算
  • 暂估冲回账务处理
  • 法人购买车险发票怎么开
  • 一般纳税人增值税优惠政策2023
  • 小规模减免税款的账务处理
  • 围挡属于什么类型
  • 暂估入账后没有交房产税
  • a企业给关联公司借款怎么做账
  • 固定资产一次扣除政策执行到什么时候?
  • 银行回单卡是什么卡
  • 预收货款存入银行分录
  • 彩票扣税比例
  • 无形资产内部研究开发支出的确认和计量
  • pos刷的钱能追回吗
  • 预付材料款会计分录
  • 国税是负税需要缴税吗
  • 小规模纳税人不用交增值税吗
  • 城市维护建设税的计税依据是什么
  • 以货抵债会计处理
  • 其他应收款无法收回的会计分录
  • 某产品今年进价是去年的
  • 什么是现金购房
  • 废旧物资回收企业税收管理
  • PHP:xml_get_error_code()的用法_XML解析器函数
  • 小规模纳税人无法开具增值税专用发票
  • 电脑输入法无法输入中文怎么办
  • 企业研发费用可以只加计一半吗
  • 摊余成本等于什么
  • 广告行业物料
  • 股东无偿转让股权
  • php $_files
  • 房地产企业销售额扣除土地价款
  • 4个生活小常识简短
  • 猿人知乎
  • php储存数据的方法
  • 小米随身wf
  • php读取文件
  • webpack插件执行顺序
  • Cookie 的 SameSite 属性
  • 自学前端,你必做的事
  • 预付卡销售和充值计入什么费用
  • 服务型企业交税再返税
  • 塔吊租赁人工合同
  • ps灰色模式怎么换回来快捷键
  • 织梦自适应模板怎么弄
  • 合伙企业需要申报哪些税
  • access 替换
  • db2使用教程
  • 使用正则表达式提取文本(888)555
  • 房地产增值税可以抵扣吗
  • 公允价值变动损益借贷方向增减
  • 工商年报资产状况公示还是不公示
  • 计提折旧是哪个月的
  • 合作研究开发项目的合同
  • 企业筹建期间银行开户要求
  • 同一个客户有应收也有应付怎么办
  • 医院床单被套尺寸
  • 年底计提利息会计分录
  • 在建工程转固定资产的账务处理
  • 企业经营规模小的原因
  • win10系统提醒
  • macOS 10.12 Beta 7更新了什么 macOS 10.12 Beta7更新内容汇总
  • mac电脑怎么安装ie浏览器
  • 安装硬盘视频教程
  • U盘安装centos 7出现unknown chipset
  • SSDP Discovery Service 是什么可以禁用吗
  • opengl绘制三维图形代码
  • ubuntu不待机
  • unity strangeioc
  • python中字典的键值对
  • Unity Batch 对 Vertex Shader 产生影响
  • 好看的手写字纯文字
  • JavaScript为事件句柄绑定监听函数实例详解
  • 四川省成都市国池酒厂52度原浆多少钱一瓶
  • 关于涉访涉诉终结的规定
  • 广东国税局局长是谁
  • 2019税务系统升级
  • 中国进口车关税为什么那么贵
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设