位置: 编程技术 - 正文

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

  • 实收资本印花税最新规定
  • 哪些资产损失向银行贷款
  • 企业所得税的代码是什么
  • 烟叶税税率是多少2019
  • 增值税专用发票抵扣期限
  • 投标保证金利息计算起止时间
  • 企业缴纳印花税通过什么科目
  • 发票开票地址是注册地址还是经营地址
  • 公司为员工购买社保证明
  • 支付境外特许权所得需要交什么税
  • 旅游开发公司有什么职位
  • 企业收到银行收款通知
  • 职工工资保险费账务处理怎么做?
  • 国有资产划转如何做账
  • 转账支票支付展览费
  • 自己生产的产品用于职工福利
  • 企业应纳税所得额计算例题
  • 个人股东无偿借款给企业
  • 企业卖了个人如何交税
  • 上报汇总和抄报是一个意思吗
  • 季报资产负债表和利润表的勾稽关系
  • 租金收入的印花税税率是多少
  • 主营业务收入增速怎么算
  • 简易计税进项税额转出公式
  • 注册了店面没有营业执照
  • 培训费没有发票怎么办
  • 存出投资款现金流量表选什么
  • 公司一直是亏损怎么赔偿
  • 应交税金的含义
  • 法人营业执照和非法人营业执照
  • 银装素裹的意思和造句
  • 结霜的早晨
  • 实例讲解YII2中多表关联的使用方法
  • 外汇申报中付款什么意思
  • ps黑白怎么调
  • 增值税发票已经认证了,但是税票原票没给,会有什么后果
  • 应纳所得税额等于利润总额减去差异
  • 可供出售金融资产新准则叫什么
  • 你必须了解的最大的问题
  • SQL Server 2016 TempDb里的显著提升
  • 税控盘开票机号在哪里能查到
  • 小微企业免税销售额和其他免税销售额的区别
  • 公司购买劳保用品可以抵扣吗
  • 印花税的征税对象和计税依据
  • 现金支付有借款利息吗
  • 盈余公积转增资本对会计要素的影响
  • 融资租入企业所得税扣除
  • 发票冲红原件需要拿回来吗
  • 购买的税控盘可以全额抵扣,怎么报
  • 债权人和债务人的区别
  • 2010年漏记的费用,11年该如何记账?
  • 没有发票的费用支出怎么入账
  • 费用设置的明细科目
  • 本年利润的会计分录
  • 数据库表的创建心得体会
  • sql汇总查询
  • mysql操作教程
  • Linux系统配置IP
  • macbookpro如何点击
  • 从五方面解析Linux防火墙框架问题
  • linux中vi替换
  • Win10预览版桌面图标和任务栏不翼而飞怎么办?
  • 调出下拉菜单
  • 如何使用jquery插件
  • jquery layer
  • wow 脚本开发
  • Python文件处理
  • vue.js打包部署
  • vue实现标签页效果
  • linux中crontab
  • js数组entries
  • Python调用大漠插件
  • 不错的二本院校有哪些
  • jquery新增属性
  • 土地增值税有哪些税收抵扣
  • 法人没有实名认证,现在要变更,还需要实名认证吗
  • 限售股转让如何交税
  • 广西国家税务局于红林
  • 安徽省滁州市税务局地址
  • 税务师怎么备考才能考过
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设