php拓展
㈠ 如何设置php扩展的目录
当服务器上PHP已经安装好,需要额外添加PHP扩展时怎么办?不需要重新安装PHP,有了phpize我们可以在原有的PHP基础之上直接安装扩展库。
这次编译仅仅只是单独编译PHP的扩展库,接下来将编译好的扩展库加入到现在运行的php中,不对现在运行的php重新编译,所以没有一点的影响。
下面我们演示安装xsl的扩展(不一定常用,仅做为一个范例)
做法一:
1.找到当前运行的php版本的源代码目录,如php-5.2.3。进入xsl扩展库目录。
$cd /home/pkgs/php-5.3.3/ext/xsl
2.调用phpize程序生成编译配置文件。
$/home/app/php5.3.3/bin/phpize
3.编译扩展库,分别执行下面的configure和make命令。
$./configure-with-php-config=/home/app/php5.3.3/bin/php-config
这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因。
$make
#make成功执行后,生成的扩展库文件在当前目录的 moles子目录下,
如/home/php-5.3.3/ext/curl/moles/xsl.so
4.配置php.ini文件
#将编译好的扩展库文件复制到PHP的扩展目录下,可通过查看phpinfo信息。。
$ cp /home/pkg/php-5.3.3/ext/xsl/moles/xsl.so /home/app/php5.3.3/lib/php/extensions/no-debug-non-zts-20090626
#在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到php安装目录/extension/no-debug-non....目录下,并添加扩展库位置。
extension_dir /home/app/php5.3.3/lib/php/extensions/no-debug-non-zts-20090626”
extension=xsl.so
5.重启php,查看phpinfo信息,即可看到刚才添加进去的xsl扩展库。(如果有多个php-fpm进程的话,平滑重启主进程即可:kill -USR2 pid)
㈡ 如何写php扩展
PHP取得成功的一个主要原因之一是她拥有大量的可用扩展。web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到。PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内的许多扩展。
扩展API的引入使PHP3取得了巨大的进展,扩展API机制使PHP开发社区很容易的开发出几十种扩展。现在,两个版本过去了,API仍然和PHP3时的非常相似。扩展主要的思想是:尽可能的从扩展编写者那里隐藏PHP的内部机制和脚本引擎本身,仅仅需要开发者熟悉API。
有两个理由需要自己编写PHP扩展。第一个理由是:PHP需要支持一项她还未支持的技术。这通常包括包裹一些现成的C函数库,以便提供PHP接口。例如,如果一个叫FooBase的数据库已推出市场,你需要建立一个PHP扩展帮助你从PHP里调用FooBase的C函数库。这个工作可能仅由一个人完成,然后被整个PHP社区共享(如果你愿意的话)。第二个不是很普遍的理由是:你需要从性能或功能的原因考虑来编写一些商业逻辑。
如果以上的两个理由都和你没什么关系,同时你感觉自己没有冒险精神,那么你可以跳过本章。
本章教你如何编写相对简单的PHP扩展,使用一部分扩展API函数。对于大多数打算开发自定义PHP扩展开发者而言,它含概了足够的资料。学习一门编程课程的最好方法之一就是动手做一些极其简单的例子,这些例子正是本章的线索。一旦你明白了基础的东西,你就可以在互联网上通过阅读文挡、原代码或参加邮件列表新闻组讨论来丰富自己。因此,本章集中在让你如何开始的话题。在UNIX下一个叫ext_skel的脚本被用于建立扩展的骨架,骨架信息从一个描述扩展接口的定义文件中取得。因此你需要利用UNIX来建立一个骨架。Windows开发者可以使用Windows ext_skel_win32.php代替ext_skel。
然而,本章关于用你开发的扩展编译PHP的指导仅涉及UNIX编译系统。本章中所有的对API的解释与UNIX和Windows下开发的扩展都有联系。
㈢ PHP如何添加内置的扩展
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。
在xampp集成环境中,curl自带,只不过默认关闭。
vim /etc/php.ini
注:此处的/etc/php.ini 请找到自己的php.ini路径
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
然后找到:
;extension=php_curl.dll
在Vim下搜索字符串方法如下:
1、命令模式下输入“/字符串”,例如“/Section 3”。
2、如果查找下一个,按“n”即可。
要自当前光标位置向上搜索,请使用以下命令:
/pattern Enter
将;extension=php_curl.dll的注释去掉,保存退出
:x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。
最后重启服务即可
service httpd restart
㈣ 什么是php扩展,从原理方面解释,详细一点
就是按照一定规则编写的一些的函数库,在WINDOWS是DLL文件,在UNIX下是SO文件,这些库能让PHP环境下的程序多出一些可以调用的函数,完成特定的功能。
比如MYsql扩展多了mysql_*函数,可以连接MYSQL数据库、进行数据检索等操作。
㈤ php 怎么安装扩展
在windows平台上,主要是三个步骤:
1、下载php扩展库文件;
一般在http://pecl.php.net/上就有下载信息。
2、解压缩文件,将*.dll文件复制到PHP程序主目录下的“ext”或者“extension”目录。
3、打开php.ini文件,在“Dynamic Extensions”配置段中加上“extension=*.dll”,关闭文件,重新启动一下服务器就可以加载成功了。
㈥ 如何在编译好的PHP环境中安装PHP扩展模块
安装步骤:
1、先进入php解压缩后的源码包中,找到要安装的扩展模块的目录。
[root@redhat5 sockets]# cd /home/soft/php-5.2.12/ext/sockets
在sockets目录下面以绝对路径运行phpize程序,这时会自动生成sockets的configure程序,在sockets目录下面可以看到。
[root@redhat5 sockets]# /home/webserver/php5.2.12/bin/phpize
2、进行编译安装
[root@redhat5 sockets]# ./configure --with-php-config=/home/webserver/php5.2.12/bin/php-config
[root@redhat5 sockets]#make
[root@redhat5 sockets]#make install
执行完make install屏幕上会提示sockets.so存放的路径,然后把它复制到php的extensions目录中,例如我的路径为 /home/webserver/php5.2.12/lib/php/extensions
3、修改php.ini文件
找到extension_dir = "./" 这行,修改为:
extension_dir = "/home/webserver/php5.2.12/lib/php/extensions/"
然后再新增加一行:
extension=sockets.so
4、重启apache即可生效。
其它模块的安装方法和这个一模一样,不管是php自带的扩展模块还是第三方扩展模块都照这种方法安装即可。
㈦ 查看php中被载入的扩展
兔斯基童鞋,我觉得你应该好好看看 PHP 手册 foreach 循环部分。
foreach 语法 foreach(array as key=>value)
也就是将一个数组拆成两组变量,循环输出。
$extension 就是 value ,你写的程序中循环输出的 $extension 变量值就是 $exten_list 的值。
as 是 foreach 的关键字,你想把目标数组拆分循环就必须用到它。
get_extension_funcs() 是内置函数,也是这段程序中最关键的部分,作用是取得 extension 或 method 后返回一个数组。
我猜你电脑里没有PHP手册吧?呵呵,学PHP必须要有一份PHP手册辅助,就算我们这些专业人也是人手一册的。
㈧ PHP的扩展模块怎么添加
在PHP/etc 文件夹中加入扩展
在PHP 文件夹下的php.ini文件里 有很多dll文件的地方加入一行 你所添加的扩展的名字xxxx.dll
或者 是 在php.ini中直接打开对应的扩展 ,将目标行的 ; 给去掉
哦,对了,最后记得要重新启动PHP的服务器