[PHP] User Defined Extension
为 PHP 添加扩展库是一件简单的事情。不过首先你最好会一点点C/C++编程技术,并且对Makefile有一定的了解。
以下是在 Linux 下的一个简单例子:
首先,进入 php 源代码目录(假设为 PHP_SRC,以下同),使用 php 自带的 ext_skel 工具生成一个新扩展 mk4php:
cd PHP_SRC/etc;
./ext_skel --extname=mk4php
正常情况下您会看到类似这样的输出:
Creating directory mk4php
Creating basic files: config.m4 config.w32 .cvsignore mk4php.c php_mk4php.h CREDITS EXPERIMENTAL tests/001.phpt mk4php.php [done].
To use your new extension, you will have to execute the following steps:
1. $ cd ..
2. $ vi ext/mk4php/config.m4
3. $ ./buildconf
4. $ ./configure --[with|enable]-mk4php
5. $ make
6. $ ./php -f ext/mk4php/mk4php.php
7. $ vi ext/mk4php/mk4php.c
8. $ make
Repeat steps 3-6 until you are satisfied with ext/mk4php/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
此时会在 ext/ 目录下生成一个以 mk4php 命名的目录,进去看看。
编辑 ext/mk4php/ 目录下面的 config.m4 文件,找到下面三行,删掉前面的 dnl 前缀:
dnl PHP_ARG_WITH(mk4php, for mk4php support,
dnl Make sure that the comment is aligned:
dnl [ --with-mk4php Include mk4php support])
说明:
1. dnl 是注释,删掉表示使改行生效,否则 make 的时候不会生成相应的 modules
2. 也可以使用下面挨着的关于 --enable-mk4php 那三行,两者的区别在于你的扩展是否需要引用外部的库
然后就是 configure; make; make install
configure 的时候,如果你的 apxs 和 php-config 不在默认路径上,则需要指定它们
./configure --with-mk4php --with-apxs=/usr/local/apache/bin/apxs --with-php-config=/usr/local/php/bin/php-config
make
make install
说明:
1. make 成功之后会在 ext/mk4php/modules/ 下生成相应的 .so 文件
2. make install 就是把 modules/* 复制到 php 的 extensions 目录
再下来就是在 php.ini 里添加一行:
extension=mk4php.so
最后检查一下是否安装
相关文档:
PHP程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障。PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库Mcrypt和Mhash。
其中,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。
1.PHP加密扩展库Mcrypt安装
在标准的PHP安装过 ......
require() 与 require_once()
通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require
所指定引入的文件,如果出现错误是致命的。
nclude() 与 include_once()
&n ......
PHP作为一种服务器端的脚本语言,象编写简单,或者是复杂的动态网页这样的任务,它完全能够胜任。但事情不总是如此,有时为了实现某个功能,必须借助于操作系统的外部程序(或者称之为命令),这样可以做到事半功倍。
那么,是否可以在PHP脚本中调用外部命令呢?如果能,如何去做呢?有些什么方面的顾虑呢?相信你看了本 ......
本文转载自:http://www.binzhou123.com/article/html/6038.html
滨州站长网最新消息:
Apache是一种功能强大得Web服务器。如今,Internet上无数运行在Linux上得Apache服务器正为Web世界得日益繁荣提供着有力得支撑。本文将向读者介绍如何在UbuntuLinux系统迅速搭建ApacheWeb服务器。
尽管Ubuntu是一种新兴得 ......
不得不自已写一个.XML
的操作一直没有用过.下面是自己搜集的XML操作类
DOMDocument相关的内容.
属性:
Attributes 存储节点的属性列表(只读)
childNodes
存储节点的子节点列表(只读)
dataType 返回此节点的数据类型
Definition 以DTD或XML模式给出的节点的定义(只读)
Doctype 指定文档类型节点(只读)
doc ......