
【PHP扩展开发】
Pz_mstr
混子程序员
展开
-
PHP8源码编译简易教程
前言环境:ubuntu18 && PHP-8.0.18PHP-8.0.18 下载链接编译步骤解压,编译选项如下,然后make && sudo make install./configure --prefix=/usr/local/php8 \--with-config-file-path=/usr/local/php8/etc \--with-iconv=/usr/local/libiconv \--enable-opcache \--enable-pdo原创 2022-05-06 10:02:59 · 860 阅读 · 0 评论 -
php插件调试简易教程
前言有人知道怎么用xdebug调试插件吗?还是不能实现的?可以留言交流一下 感谢正文因为不太会用xdebug,因此采用linux的通用debug方法——coredump文件 (针对segmentation fault)0x01 配置 core dump功能ulimit -c //查看系统是否开启了core dump功能,0表示coredump文件大小为0,等于未开启该功能ulimit -c unlimited // 设置coredump文件大小为不限制echo "/home/username原创 2021-03-11 09:53:59 · 217 阅读 · 0 评论 -
基于opcode对PHP危险函数的基本分析
样例代码<?phpeval('$a="hello";');echo $a;assert('printf("xxx2");');preg_replace("/test/e","phpinfo();","just test");$new_func = create_function('$v','return system($v);');$new_func("whoami");call_user_func('system','whoami');echo exec("echo ex原创 2021-01-25 20:08:07 · 233 阅读 · 0 评论 -
FETCH_W,FETCH_R和FETCH_RW的区别
前言在上一篇文章中谈到了FETCH_R的作用,实际上,其作用就是获取可变变量和超全局变量。在后面又遇到了两个相似的opcode,现在来分析一下他们的区别吧样例代码opcode代码就不展示了FETCH_W<?php$x = 1;$a = 'x';$$a = 2;FETCH_R<?php$x = 1;$a = 'x';echo $$a;FETCH_RW<?php$x = 1;$a = 'x';$$a++;可以看到,FETCH_W中是一个写入操作,FE原创 2021-01-13 20:13:43 · 190 阅读 · 0 评论 -
FETCH_R分析
前言本文属于PHP opcode分析系列PHP Api Version: 20180731Zend Module Api No: 20180731Zend Extension Api No: 320180731官网介绍FETCH_R<?php/* * Fetch the value of the varible of "name" to assign it to a variable? Read-only? * opcode number: 80原创 2021-01-12 21:15:49 · 160 阅读 · 0 评论 -
PHP扩展开发小知识点零碎记录
遇到容易忘的就记下来随缘更新一些常用宏#define EX(element) ((execute_data) -> element) 获取执行栈上运行的关键数据原创 2021-01-06 09:45:13 · 138 阅读 · 0 评论