【windows下开发并编译PHP扩展的方法_PHP】教程文章相关的互联网学习教程文章

[php扩展和嵌入式]-内存管理_PHP教程【图】

内存管理 php和c最重要的区别就是是否控制内存指针. 内存 在php中, 设置一个字符串变量很简单: , 字符串可以自由的修改, 拷贝, 移动. 在C中, 则是另外一种方式, 虽然你可以简单的用静态字符串初始化: char *str = "hello world"; 但是这个字符串不能被修改, 因为它存在于代码段. 要创建一个可维护的字符串, 你需要分配一块内存, 并使用一个strdup()这样的函数将内容拷贝到其中. [cpp] { char *str; str = strdup("hello world")...

PHP扩展生成器_PHP教程

第一种方法:使用PHP源码包自带的ext_skel工具。~/public_html/php-5.3.13/ext> ./ext_skel --extname=sample11 Creating directory sample11 Creating basic files: config.m4 config.w32 .svnignore sample11.c php_sample11.h CREDITS EXPERIMENTAL tests/001.phpt sample11.php [done].To use your new extension, you will have to execute the following steps:1. $ cd .. 2. $ vi ext/sample11/config.m4 3. $ ./buildc...

[php扩展和嵌入式]-安装构建环境_PHP教程

安装构建环境现在你可能至少已经有一个已安装的php, 并且已经使用它做基于web的应用开发了. 你可能已经从php.Net下载了win32构建并运行在iis或windows版的apache上, 或者使用你的*nix(Linux, bsd, 或其他遵循POSIX的发行)发行版的包管理系统安装了第三方创建的二进制.构建php除非你是下载源码包自己编译, 否则你肯定会错过一些知识点.*nix工具C开发者工具集中必不可少的第一个工具是C的编译器. 你的发行版中可能会默认包含一个, 如...

快速开发一个PHP扩展_PHP教程

本文通过非常快速的方式讲解了如何制作一个PHP 5.2 环境的扩展(PHP Extension),希望能够在图文的方式下让想快速学习的朋友了解一下制作过程。需求:比如开发一个叫做 heiyeluren 的扩展,扩展里就一个函数 heiyeluren_test(),输入一个字符串,函数返回:Your input string: xxxxx。 要求:了解C/C++编程,熟悉PHP编程 环境:下载一份php对应版本的源码,我这里是 php-5.2.6,先正常安装php,假设我们的php安装在 /usr/local/ph...

PHP扩展开发-v1.0_PHP教程

1 前言 这篇文章是我个人的学习笔记,我把这篇文章送给所有喜欢PHP语言,喜欢PHP扩展开发的同行、同学们。2 前期准备 闲话不和大家撤了,如果您想学习php的扩展开发,相信您对php基础知识已经有了一定的了解。PHP扩展时用C语言编写的,如果您还不知道C语言 里面指针式什么东西,建议您先移步他出,好好学习一下C语言,大家都在骂谭浩强的《C语言程序设计》,但是我仍然建议您好好看看这本书。做PHP开发得先准备一下环境吧...

PHP扩展开发-07-函数调用_PHP教程

1 函数返回值 终于讲完zval了,前面我们讲到了函数的定义和使用,但是我们没有讲函数的返回值。因为C扩展中,函数的返回值类型为zval的,所以我们把这一节放在了这里进行讲解。 本节任务,我们写一个简单的计算器,完成加减乘除运算,要求:编写函数calculate(num1, num2, opt),我们希望完成num1 opt num2= ?的运算。我们看一下完成上面任务的代码: PHP_FUNCTION(calculate) {int num1;int num2;char* opt;int opt_len; if...

用C实现PHP扩展类的步骤_PHP教程

前面简单介绍了用C语言实现PHP扩展的步骤,见用C开发PHP扩展的步骤,那个是扩展一个函数,这里讲述一下如何用C扩展类。准备实现的类如下:[php] class Rectangle{ private $_width; private $_height; public function __construct($width, $height){ $this->_width = $width; $this->_height = $height; } public function clone(){ return new Rectangle($this->_width, $this->_height); } public function setWidth($width){ ...

使用C语言来扩展PHP,写PHP扩展dll_PHP教程【图】

以前写过一次PHP扩展DLL,那个是利用调用系统的COM口实现的扩展,与PHP不能真正融合。心血来潮,研究了一下PHP的源码,网上找了一些资料,自己尝试写了一个扩展DLL,测试没问题。下面记录一下具体扩展方法: 1、首先从www.php.com网站上下载php源码,此处以php-5.2.17版本为例,下载后解压至E:盘根目录下(目录可以自己随意定)。 2、下载安装VC++ 6.0,因为PHP源码是利用6.0版本写的,所以使用这个版本编译不会出现意外,别的版本...

HelloWorld:第一个PHP扩展_PHP教程

目标创建一个名为 hello 的 PHP 扩展,并实现里面唯一的函数 hello_world,作用是打印出 "Hello World" 字符串。 前提条件一台已经安装了 C 编译器、PHP 运行环境的电脑,一个称手的文本编辑器。重要提示:不要试图在 Windows 下写 PHP 扩展,Visual C、MinGW 的编译器都不好用,我曾经捣鼓了一个多星期也没能在 Windows 下编译成功过。所以至少要在一个 Unix 环境下进行。Mac 和各种 Linux 环境都可以。 下载 PHP 源代码先用 php ...

PHPzlib扩展页面GZIP压缩功能详解_PHP教程

要实现GZIP压缩页面需要浏览器和服务器共同支持,实际上就是服务器压缩,传到浏览器后浏览器解压并解析。浏览器那边不需要我们担心,因为现在绝大多数浏览器都支持解析GZIP过的页面。我们只要把页面在服务器端压缩再输出到浏览器就行了。有点罗嗦,下面说正事:正如要制作压缩饼干,先要拿到原料,要压缩一个页面,首先要获得要输出的内容。PHP中的ob_start()(ob => output buffer)函数可以实现这个功能,它可以把程序里准备输出...

linux下为PHP扩展安装memcache模块_PHP教程

安装环境 RHEL 4 Php 5.2.6所需软件 libevent-1.4.6-stable.tar.gz (http://monkey.org/~provos/libevent/) memcache-2.2.3.tgz (http://pecl.php.com/package/memcache) memcached-1.2.6.tar.gz (http://www.danga.com/memcached/)安装配置 1. 安装libevent # tar zxf libevent-1.4.6-stable.tar.gz # cd libevent-1.4.6-stable # ./configure --prefix=/usr/local/servers/libevent # make && make install 2. 安装memcached # t...

使用VC++开发PHP扩展注意事项_PHP教程

一、默认情况下,C++是使用.cpp作为扩展名的,而PHP是用C写的,因此必须使用C++提供的C连接交换指定符号extern "C"来解决这个问题,以下两部分语句必须被包含:extern "C" {#include "php.h"#include "php_ini.h"#include "ext/standard/info.h"... // 其他C头文件}和extern "C" {#ifdef COMPILE_DL_MYEXTZEND_GET_MODULE(myext)#endif}二、STL模版定义是不能被包含在C连接交换指定符的,而PHP需用到math.h这个头文件,因此编译的时...

php的扩展和嵌入--php内存管理_PHP教程【图】

php对内存的管理机制相当的详尽,它在这一点上更类与java的垃圾回收机制。而对于c语言或者c大部分时候都只能由程序员自己把申请的空间释放掉。在php中,由于要应对成千上万的连接,同时这些连接往往还需要保持很长的时间。这并不同于c中程序结束了相应的内存块就会被回收。 所以仅仅依靠程序员在写程序的时候注意内存回收是不够的,php肯定要有一些自己内部的、与连接相关的内存管理机制来保证不发生任何的内存泄露。 在本文中,首...

php的扩展和嵌入--php的生命周期与变量详述_PHP教程【图】

首先开始介绍php的生命周期,了解一个php程序从开始运行到最后结束究竟经过怎么样的过程,对学习php和平时php开发应该是很重要的。起始和关闭阶段:对于php的起始和关闭阶段可以分成两层,第一层是php解释器作为一个整体进行结构和值的初始化过程。第二层则是在每一个页面的请求过程中。 对于每个扩展而言,都会有一个初始化MINT函数,这个过程会声明变量、类,注册资源、流和过滤处理器,这些操作在所有的请求中都是存在的,所以可...

php的扩展和嵌入--c扩展开发helloworld_PHP教程

在linux下面完成了LAMP的配置环境之后,就可以进行php的扩展开发了。php中的扩展开发都在源码包的/ext文件夹之下,可以看到这里已经有了很多开发好的扩展。比如与数据库相关的mysql以及xml处理的模块等等。首先建立一个文件夹:mkdir hello在进入这个文件夹之后,先创建并打开一个配置文件:vim config.m4这个给出一个配置问题的实例:1 PHP_ARG_ENABLE(sample, whether to enable SAMPLE support, 2 [ --enable-sample Enable SAM...