声明:本文为斯人原创,全部为作者一一分析得之,有不对的地方望赐教。
欢迎转载,转载请注明出处 。
本文地址:
http://imsiren.com/archives/568PHP写扩展..
如果您还么有读
原:用C/C++扩展PHP建议您先看一下
这篇文章..
今天来个简单的..我们用扩展方式创建一个变量 $siren.
然后在PHP文件里面输出这个变量.
1. 执行源码目录中的 ext_skel –extname=siren执行成功过后就会在php-src/ext/目录下生成一个siren的文件件,里面包含了扩展的基本结构.
2.修改config.m4因为我的系统是Linux所以要修改此文件,我们采用so模块的形式加载,所以编辑config.m4文件
去掉1,3行的注释dnl,这样我们就可以用PHP以模块的形式加载..具体可以参见我上一篇文章
http://imsiren.com/archives/547
3.编辑php_siren.h
此文件是一个头文件,包含了我们函数的定义.
我要新建一个variable函数,首先需要在此文件里面加一行代码:PHP_FUNCTION(variable); 可以理解为声明一个函数
4.修改siren.c源文件
在siren_functions数组里面添加一行 PHP_FE(variable,NULL);
然后在 最下面添加如下代码
zval接口用来保存变量的信息
MAKE_STD_ZVAL宏用来分配内存空间
ZVAL_STRING宏给zval结构设置信息.
如果不懂 请参见 原创:PHP内核研究:HASH表和变量
最后在php-src/ext/siren目录下执行
1. php安装目录/bin/phpize
2. ./configure –with-php-config=/php安装目录/bin/php-config
3. make && make install
这样 执行后就会在 php的扩展目录下生成一个 siren.so文件
4. 修改php.ini extension=siren.so 开启扩展
5. 编写PHP文件 执行 variable(); 然后 echo $siren;
看看是不是输出了 “this is siren”呢?
怎么样 是不是很简单..
原文出处:
http://imsiren.com/archives/568
分享到:
相关推荐
例如,你可以使用PHP-CPP创建一个名为`MathExtension`的PHP扩展,其中包含一个名为`power`的方法,用于计算任意两个数字的乘方。在C++代码中,定义`Php::Class<Math>`,设置其属性和方法,然后在`power`方法中实现...
在计算机科学中,线程是进程内的执行单元,每个线程都有自己的程序计数器、系统栈、局部变量和一个执行上下文。通过使用线程,程序可以在同一进程中并发执行多个任务,从而实现并行处理。 2. **Pthreads扩展安装**...
### 创建一个简单的PHP页面 #### 知识点详解 ##### PHP简介 PHP是一种广泛使用的开源服务器端脚本语言,特别适合Web开发,并可嵌入HTML中。PHP支持多种数据库,如MySQL、Oracle等,能够高效地处理动态内容,实现...
它的诞生最初是为了创建...这不仅限于想要编写PHP扩展的高级开发人员,对于希望提高编程效率和优化性能的普通开发者也同样重要。通过深入理解PHP内核,开发者可以获得更加深刻的语言理解,编写出更加稳定和高效的代码。
这个论坛系统是由开发者独立创建的,旨在提供一个在线讨论平台,用户可以在上面发表话题、进行互动交流。PHP是一种广泛使用的开源脚本语言,特别适合于Web开发,而MySQL则是最流行的开源关系型数据库管理系统之一,...
这个“一个简单的PHP Web论坛”项目提供了完整的源代码,对于初学者或者想要了解PHP Web开发的人来说,是一个很好的学习资源。 在PHP Web论坛的设计中,主要涉及以下几个关键知识点: 1. **PHP基础**:PHP是服务器...
【PHP写的一个论坛模板】是基于PHP编程语言开发的一款用于构建在线讨论社区的网页模板。PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适合于Web开发,可以嵌入到HTML中,方便地创建动态网页内容...
1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用...
在Windows操作系统下开发并编译PHP扩展是一个涉及多个步骤的过程,对普通程序员来说可能显得比较神秘,但只要具备C语言知识并熟悉开发的步骤与规则,就能够顺利完成这项工作。以下是详细的步骤和知识点: 1. 准备...
1. **创建哈希表**: 可以通过`zend_hash_init`函数初始化一个新的哈希表。 2. **插入元素**: 使用`zend_hash_add`或`zend_hash_update`向哈希表中插入元素。 3. **查找元素**: 通过键名使用`zend_hash_find`查找哈希...
"Php-extension-class.zip"这个压缩包文件似乎包含了一个PHP扩展,该扩展封装了一个C语言的结构体为PHP的类,以便更方便地在PHP层面操作这些结构体的成员。下面我们将深入探讨这一技术及其背后的原理。 首先,让...
1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数...
1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用...
PHP4于2000年发布,它是PHP发展史上的一个重要里程碑。以下是一些PHP4的关键特性: 1. **面向对象编程(OOP)支持**:虽然PHP4引入了OOP概念,但其支持有限,类和对象的实现较为基础。 2. **预定义变量**:PHP4使用...
就像一名普通的汽车驾驶员只需要了解基本的操作知识一样,一个普通的 PHP 开发者只需要掌握 PHP 的基本语法。然而,当开发者负责维护高流量网站时,他们就需要像赛车手那样深入了解引擎内部的工作原理。 #### 为...
根据`refcount`和`is_ref`的值,`zval`可以处于不同的状态,如普通变量、引用或共享引用。 #### 1.5 zval 状态切换 状态切换发生在赋值操作、函数调用、创建引用等场景,以确保正确地管理内存和数据。 #### 1.6 ...
本系统集成了写作、上传照片和分享音乐等多种功能,为用户提供了一个个性化的网络空间。 一、PHP基础 1. PHP语法:PHP代码通常嵌入在HTML中,用于处理服务器端逻辑。基础语法包括变量、常量、数据类型、运算符、...
例如,你可以将一个变量赋值为字符串,然后又赋值为整数。变量的作用域取决于它们被声明的位置。全局变量是在函数外部声明的,只能在函数外部访问。而在函数内部声明的变量是局部变量,只能在该函数内部使用。如果...
2. **创建闭包**:首先,你需要定义一个闭包。例如: ```php $closure = function($param) { return 'Hello, ' . $param; }; ``` 3. **序列化闭包**:然后,使用SuperClosure提供的`SuperClosure\Serializer`...
通过实际项目练习,读者可以进一步提升自己的PHP开发能力,并有机会设计和实现一个完整的CMS系统。无论你是刚接触PHP的新手,还是希望巩固和拓展现有技能的开发者,这本书都将是一份宝贵的资源。