位置: 编程技术 - 正文

如何使用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最新
  • 现金流量表年报期末现金余额
  • 政府电费补贴文件
  • 当月没有销售需要结转成本吗
  • 投资公司收到的发票
  • 工资不到3500用交个税吗
  • 开具红字发票无蓝字发票如何网上申报?
  • 工会发票开了专票怎么办
  • 小规模升一般纳税人开票超过500万
  • 电子发票怎么作废操作流程视频
  • 房地产企业建设的幼儿园如何缴纳城镇土地使用税
  • 高新技术研发人员比例
  • u盘加载缓慢
  • U盘复制文件提示文件过大
  • 主营业务成本的二级科目有哪些
  • 设备维保费计算标准
  • 社保公积金的钱可以提出来吗
  • key是什么文档
  • 中秋节给员工购物文案
  • 非货币性资产对外捐赠企业所得税处理
  • 大溪地海岛在什么地方
  • 购买方收到红字发票如何冲成本
  • php数组查询
  • nginx安装配置视频
  • 前端实战培训
  • php支付接口对接教程
  • 中国烟草资产负债表
  • 注册公司冠名省需要多少注册资金
  • 商品流通企业库存商品的核算方法有以下几种
  • 资产负债表的编制原理
  • 员工借现金分录
  • 承兑汇票贴现利率是怎么算
  • 权责发生制和收付实现制例题
  • 扣税8%
  • 小规模纳税人免税政策2022
  • 承租人融资租赁会计账务处理
  • 个体户能开增票吗?
  • 公司注销时财务报表要注意什么
  • 发票开错没有作废可以红字冲销吗?
  • 企业购买房产缴纳房产税
  • 销售方开具的红字专票购买方在税控盘要怎么操作
  • 多余备用金记账会计分录
  • 恢复网页浏览历史记录
  • 文本效果设置在哪
  • sql语句数字转化为文字
  • 如何重装系统win7具体步骤
  • 怎么处理鲍鱼
  • 2015微软发布会
  • os x10.11el capitan beta4更新了什么?os x10.11el capitan beta4下载地址
  • macbook调节音量怎么没反应
  • win8.1开始界面
  • win7系统如何设置息屏
  • win8 重置
  • mac10.95升级
  • mm server conection failed
  • linux中nm命令
  • 一个监控网卡流量够用吗
  • linux系统下hosts文件详解及配置
  • 高效的python
  • dos查看内存命令
  • android蓝牙连接过程
  • nodejs如何使用
  • linux shell脚本攻略(第3版)
  • dom方法总结
  • 江西2022年选调
  • 写给税务局的表扬信
  • 世界第二十八高峰
  • 办理企业步骤
  • 航天金税怎么导入发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设