位置: 编程技术 - 正文

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

  • 民营医院一般纳税人帐务处理视频税收风险
  • 编制支出加工费的会计分录
  • 生产用天然气如何入账
  • 补缴以前年度附加税
  • 农业机耕开发票税收分类编码是什么
  • 上月计提工资下月要冲回吗冲会吗
  • 增值税税金不足1元未缴纳账务处理
  • 配件的出口是否可以免抵退?
  • 小企业取得存货计量的原则
  • 零售商品收入会计分录
  • 报销发票会计怎么处理
  • 分包挂靠认定依据
  • 短期借款占负债比例大
  • 银行开户许可证什么时候开始取消的
  • 福建水利建设专业排名
  • 文化事业建设费的征收范围
  • 税种认定登记流程
  • 国家税务局定额发票验证
  • 网上申购发票怎么撤销
  • 实时扣税3001会计科目
  • 营改增之前
  • 一般和小规模纳税人哪个免税
  • 财务费用是否存入银行卡
  • 经营终止前企业资质变更
  • 再保险的业务种类
  • 已经销售但是没货怎么办
  • 预提厂房租金
  • 企业技术中心认定专精特新
  • 股东房产无偿给公司使用协议
  • gitlab lint
  • 鸿蒙 功能
  • 期间损益结转有余额
  • 材料采购运杂费包括
  • 发票联和抵扣联区别
  • 现金流量表的作用和意义
  • php登录注册页面完整代码
  • php简单的接口编写示例
  • 应付账款重分类含不含暂估
  • 被称为下一代风华的是
  • 住宿费电子发票没有章
  • RocketMQ-02
  • vuex用法和原理
  • yolov5 output
  • php图像识别
  • 固定资产清理会议记录范文
  • 以非现金资产清偿债务的,债权人应当
  • 应收保费核算什么
  • 产生滞纳金有什么影响
  • 长期借款期末需结转吗
  • 一次性就业补助金有时间限制吗
  • 电子承兑汇票的最长期限
  • 购买材料增值税税率
  • 外聘专家机票能抵扣增值税吗
  • 建筑服务预征缴纳税款期初余额怎么算
  • 增值税专用发票的税率是多少啊
  • 疫情防控重点保障物资免征增值税
  • 会计凭证的填制与审核实训总结
  • 甲方代交水电费合法吗
  • 报销核销
  • 房地产企业预缴增值税
  • 本月没有销售怎么做账
  • 企业所得税税率多少
  • 简易征收预缴税款
  • 企业初建
  • mac怎么用知云翻译
  • linux 文件执行
  • linux常用命令清除
  • [置顶] [笔记]
  • shell脚本编程实例
  • jQuery插件ajaxFileUpload使用详解
  • css表格设置边框
  • python文本处理教程
  • python的idle打不开解决办法
  • python 线程教程
  • 莱鸟人集团
  • 技术转让条件
  • 税务局发票邮寄回来怎么读入?
  • 中石化一键加油周几有优惠
  • e福州怎么帮家人登记
  • 没有代理记账资质的公司从事代理记账业务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设