位置: 编程技术 - 正文

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

  • 可抵扣暂时性差异是指在确定未来收回资产
  • 农机合作社项目复核报告
  • 一般纳税人进项销项抵扣如何做账
  • 购进货物用于建造厂房可以抵扣增值税吗
  • 8.会计核算方法具体包括哪些内容?
  • 残保基金怎么算
  • 小规模季度不超过30万元免税会计分录
  • 增值税电子发票能抵税吗
  • 服务收入属于什么会计要素
  • 自制原始凭证和原始凭证的区别
  • 业务招待费列支内容
  • 增值税纳税处理
  • 小规模纳税人如何开电子发票
  • 已扣缴税额
  • 垫资后转出的会计分录怎么写?
  • 用友软件作废凭证
  • 一般企业和行政事业单位的资产负债表是否一样
  • 出口公司要交哪些税费
  • 饭店收停车费
  • 抵税必须要有发票
  • 营改增后小规模纳税人转一般纳人
  • 收到劳务公司缴税怎么办
  • 贷款本金余额具体是什么意思
  • 母公司拨款给子公司的账务处理
  • 进项发票已入账抵扣后开负数红冲怎么处理
  • 酒店招募
  • 按照税收一般规定计算的折旧摊销金额
  • 投资性房地产的后续计量从成本模式转为公允价值模式的
  • 增值税进项税怎么算
  • 财务费用错记成管理费用
  • 电脑插上u盘
  • macbook自动弹出页面
  • 事业单位自筹基金有哪些
  • 信息技术费用如何做分录
  • linux系统安装谷歌浏览器教程
  • 完美解决怠速抖动加油就平稳
  • 如何显示或隐藏编辑标记
  • 买材料没发票怎么办
  • 收到客户预付的保费90000元,存入银行
  • php设计思路
  • 在网上怎
  • php imagettftext()函数
  • 微信小程序webview支付
  • vue聊天系统
  • 小规模纳税人结转未交增值税
  • 餐饮固定成本怎么算的
  • 进项转出分录处理
  • 保障金纳入地方财政吗
  • 公司出售房子怎么交税
  • 促销服务费分录
  • 织梦cms怎么样
  • 怎么把其他应收款借方余额转出
  • 甲公司购入一台不需要安装
  • 垃圾处理费申报怎么填
  • 本年利润和利润分配属于什么账户
  • 一般纳税人增值税优惠政策2023
  • 清算期间研发费怎么算
  • 租金摊销会计分录
  • 收到股权认购款怎么做账
  • 差旅费车票是否可以报销
  • 纳税申报怎么查
  • 非货币性资产交换的会计处理
  • sql中函数 判断是否是null
  • red hat linux怎么用
  • un_a.exe
  • hkcmd是什么进程
  • win10允许访问
  • win8无法使用内置管理员账户打开ie
  • linux的shm共享内存
  • linux系统怎么更改语言
  • nodejss
  • 段正淳算正面人物吗
  • 详解JavaScript ES6中的Generator
  • js获取form表单数据并显示
  • jquery选择id
  • js校验密码复杂度
  • 广东省国家税务总局稽查局局长
  • 注销发票怎么处理流程
  • 沈阳和平税务大厅电话
  • 遂宁市国家税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设