第一个php扩展开发的demo
cd /root/soft/php/php-5.2.6/ext
./ext_skel --extname=heiyeluren
cd /root/soft/php/php-5.2.6/ext/heiyeluren
vi config.m4
打开文件后去掉 dnl ,获得下面的信息:
PHP_ARG_ENABLE(rot13, whether to enable heiyeluren support,
[ --enable-heiyeluren Enable heiyeluren support])
保存退出.
vim php_rot13.h
找到:PHP_FUNCTION(confirm_ rot13_compiled); ,新增一行:
PHP_FUNCTION(rot13_test);
vim rot13.c
数组里增加我们的函数,找到 zend_function_entry rot13_functions[],增加:
PHP_FE(rot13_test, NULL)
再到 rot13.c 文件最后面增加如下代码:
PHP_FUNCTION(heiyeluren_test)
{
char *arg = NULL;
int arg_len, len;
char *strg;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
return;
}
len = spprintf(&strg, 0, "Your input string: %s/n", arg);
RETURN_STRINGL(strg, len, 0);
}
保存退出。
编译安装
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
sudo make
sudo make test
sudo make install
sudo cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/rot13.so rot13.so
检查安装结果
php -m
http://blog.csdn.net/heiyeshuwu/article/details/3453854
相关文章:
第一个php扩展开发的demo
cd /root/soft/php/php-5.2.6/ext ./ext_skel --extnameheiyeluren cd /root/soft/php/php-5.2.6/ext/heiyeluren vi config.m4 打开文件后去掉 dnl ,获得下面的信息: PHP_ARG_ENABLE(rot13, whether to enable heiyeluren support, [ --enable-heiyelu…...
A stop job is running for Session c1 of user root (25s 1min 30s)问题
写在前面 今天在前端点击重启按钮,突然发现开发板的串口打印信息卡住了,时间比较长的有一处,比较短的有两处,大致为A stop job is running for Session c1 of user root (25s 1min 30s),此处估计是在关机重启的时候&a…...
C语言进阶之笔试题详解(2)
前言 这里的内容包括二维数组笔试题和指针笔试题,供给读者对这部分知识进行加深和巩固。 ✨ 猪巴戒:个人主页✨ 所属专栏:《C语言进阶》 🎈跟着猪巴戒,一起学习C语言🎈 目录 前言 笔试题 二维数组 题目…...
【开源】基于Vue和SpringBoot的独居老人物资配送系统
项目编号: S 045 ,文末获取源码。 \color{red}{项目编号:S045,文末获取源码。} 项目编号:S045,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询社区4…...
Linux常用命令----cp 命令
文章目录 1. 基本用法2. 保留文件属性3. 递归复制4. 仅复制更新的文件5. 交互式复制6. 创建符号链接而非复制7. 复制并备份目标文件8. 指定备份后缀9. 详细输出总结 Linux操作系统中,cp 命令是一个非常基础且强大的工具,用于复制文件或目录。本文将详细介…...
前端:HTML鼠标样式及其对应的CSS属性值
1、默认箭头样式: selector {cursor: default; } 2、手型样式 selector {cursor: pointer; } 3、文本选择样式: selector {cursor: text; } 4、移动手型样式: selector {cursor: move; } 5、缩放手型样式: selector {cur…...
Linux 命令chgrp chown chmod
chgrp chown chmod 介绍 chgrp : 修改文件所属用户组 chown : 修改文件拥有者 chmod : 修改文件权限1 chgrp 命令功能: chgrp命令用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的id,也可以是用户组的组…...
网络篇---第七篇
系列文章目录 文章目录 系列文章目录前言一、什么是长连接和短连接?二、长连接和短连接的优缺点?三、说说长连接短连接的操作过程前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分…...
Webshell混淆免杀的一些思路
简介 为了避免被杀软检测到,黑客们会对Webshell进行混淆免杀。本文将介绍一些Webshell混淆免杀的思路,帮助安全人员更好地防范Webshell攻击。静态免杀是指通过对恶意软件进行混淆、加密或其他技术手段,使其在静态分析阶段难以被杀毒软件或安…...
MacBook macOs安装RabbitMQ【超详细图解】
目录 一、使用brew安装RabbitMQ 二、安装RabbitMQWeb管理界面 三、启动RabbitMQ 一、使用brew安装RabbitMQ 刚好项目要用到RabbitMQ,安装顺便写下安装步骤记录一下以备用 使用brew命令安装,一般Mac会自带这个命令,如没有,…...
基于格攻击的密钥恢复方法
本篇博文介绍针对椭圆曲线签名算法的基于格攻击的密钥恢复方法,本研究将这种方法应用于椭圆曲线签名算法。针对椭圆曲线算法的攻击研究一般主要集中于算法的两个运算阶段,即标量乘阶段和组合阶段。对于椭圆曲线签名算法,针对标量乘阶段的攻击…...
Redis中的缓存穿透、雪崩、击穿(详细)
目录 一、概念 1. 缓存穿透(Cache Penetration) 解决方案: 2. 缓存雪崩(Cache Avalanche) 解决方案: 3. 缓存击穿(Cache Breakdown) 解决方案: 二、三者出现的根本原…...
iframe
iframe学习 1.iframe是什么? a)iframe是html元素,用于在网页中内嵌另一个网页。 b)iframe默认有一个宽高,存在边界。 c)iframe是一个行内块级元素,可以通过display修改。 2.iframe元素属性有哪些? a)src : 指定内联网页的地…...
rust 基本数据类型
Rust 是 静态类型(statically typed)语言,也就是说在编译时就必须知道所有变量的类型,基本类型如下 整型 整数 是一个没有小数部分的数字长度有符号无符号8-biti8u816-biti16u1632-biti32u3264-biti64u64128-biti128u128archisi…...
centos7中通过kubeadmin安装k8s集群
k8s部署官方提供了kind、minikube、kubeadmin等多种安装方式。 其中minikube安装在之前的文章中已经介绍过,部署比较简单。下面介绍通过kubeadmin部署k8s集群。 生产中提供了多种高可用方案: k8s官方文档 本文安装的是1.28.0版本。 建议去认真阅读一下…...
普中STM32 单片机资料
普中科技–各型号开发板资料下载链接: ①普中-精灵1开发板: 百度网盘链接:https://pan.baidu.com/s/1Pa8Ep1xmg6uoq17O6Nwyyw?pwd=1234 提取码:1234 ②普中-ESP32开发板: 百度网盘链接:https://pan.baidu.com/s/16VthcbW27oEWp162H3bi6Q?pwd=1234 提取码:1234 一…...
docker报错
安装 docker报错: Docker Desktop requires the Server service to be enabled. 解决方法: 管理员身份打开cmd,输入: services.msc开启 server 服务。 docker启动报错: 打开 docker 界面报错: Docke…...
pytest分布式执行(pytest-xdist)
前言 平常我们手工测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟。如果一个测试人员执行需要1000分钟才能执行完,当项目非常紧急的时候,我们会用测试人力成本换取时间成本,这个时候多找个小伙伴把任务…...
spring和springBoot
Spring和Spring Boot小结 Spring和Spring Boot基于IOC AOP理念实现,Spring Boot集成了Spring。Spring框架: Spring框架解决了企业级的开发的复杂性,它是一个容器框架,用于装java对象(Bean),使程…...
laraval6.0 GatewayWorker 交互通信
laravel 6.0 GatewayWorker 通讯 开发前准备下载 GatewayWorker 及操作方式前端demo测试效果项目中安装GatewayClient 开发前准备 GatewayClient 官网:https://www.workerman.net/ 当前使用的是宝塔操作 下载 GatewayWorker 及操作方式 前端demo 测试效果 项目中安…...
双偏振雷达数据质控:核心算法原理与 Python 实现
双偏振雷达作为气象观测核心设备,可同步获取Z、V、W及Zdr、Фdp、Kdp、ρhv等多维度参量,为降水监测、灾害预警提供精准数据支撑。但受接收机性能偏差、电磁干扰、地物 / 晴空杂波等因素影响,原始双偏振参量存在大量噪声、异常值,…...
JVM排查工具单
jstack是jdk自带的线程堆栈分析工具,使用该命令可以查看或导出 Java 应用程序中线程堆栈信息。线程快照是当前虚拟机内每一条线程上在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、 请…...
AI Agent Harness Engineering 零售场景应用:智能货架、库存管理与个性化推荐
AI Agent Harness Engineering 零售场景全栈应用:从智能货架机器人到千人千面实时导购 关键词 AI Agent Harness(智能体协同框架)、零售数字化、多模态智能体、强化学习库存调度、个性化推荐图谱、边缘云协同推理、供应链韧性优化 摘要 当传统“人-货-场”零售三要素被AI重…...
BetterJoy终极指南:在Windows电脑上完美使用Switch手柄玩游戏
BetterJoy终极指南:在Windows电脑上完美使用Switch手柄玩游戏 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitco…...
Oracle 数据仓库星型模型设计原则
星型模式(Star Schema)是 Oracle 数据仓库最核心、最常用的建模范式,核心是1 张中心事实表 N 张维度表,事实表存储度量数据,维度表存储描述属性,通过外键关联,结构清晰、查询高效、适配 Oracle…...
快速验证本地ai集成:用快马一键生成调用d盘ollama的web应用原型
最近在折腾本地大模型,发现Ollama真是个神器,能轻松管理各种开源模型。但默认安装到C盘后,模型文件越积越多,硬盘直接飘红。于是研究了下如何把Ollama迁移到D盘,顺便用InsCode(快马)平台快速搭了个Web应用原型…...
微信自动化终极方案:5分钟打造你的Python智能助手
微信自动化终极方案:5分钟打造你的Python智能助手 【免费下载链接】WechatBot 项目地址: https://gitcode.com/gh_mirrors/wechatb/WechatBot 还在为重复的微信消息回复而烦恼吗?每天处理大量群消息、客户咨询和通知发送,占用了你宝贵…...
实战指南:基于快马AI构建企业级软件安装程序,实现环境检测与静默部署
今天想和大家分享一个实战经验:如何用InsCode(快马)平台快速构建企业级软件安装程序。这个需求来源于我们团队最近的一个项目交付,客户要求安装包必须像专业商业软件那样稳定可靠。 环境检测功能实现 安装程序最基础也最重要的就是环境检测。我们通过平…...
BilibiliDown:高效下载B站视频的3步实战指南
BilibiliDown:高效下载B站视频的3步实战指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibil…...
新手入门指南:在快马平台用AI生成你的第一个龙虾部署实践项目
今天想和大家分享一个特别适合新手的实践项目——用Docker部署一个简单的Python Flask应用。这个项目是我在InsCode(快马)平台上完成的,整个过程对初学者非常友好,连我这种刚接触容器化的小白都能轻松上手。 为什么选择FlaskDocker组合 Flask是Python最轻…...
