導航:首頁 > 編程語言 > php擴展函數庫

php擴展函數庫

發布時間:2022-05-17 12:39:54

1. php的擴展模塊怎麼添加

在PHP/etc 文件夾中加入擴展
在PHP 文件夾下的php.ini文件里 有很多dll文件的地方加入一行 你所添加的擴展的名字xxxx.dll

或者 是 在php.ini中直接打開對應的擴展 ,將目標行的 ; 給去掉
哦,對了,最後記得要重新啟動PHP的伺服器

2. 有人能簡單說說php中的擴展模塊作用嗎

我剛開始的時候和樓下的想法一樣,覺得這種一網路一大堆的東西幹嘛要提問。
結果我真網路的時候才發現網路原來真的不好找到。
不過,最後還是找到了。下面的表格就是擴展庫所有擴展的說明和註解和解釋。

-------------------------------------------華麗分割線------------------------------------------
擴展庫 說明 註解
php_bz2.dll bzip2 壓縮函數庫 無
php_calendar.dll 歷法轉換函數庫 自 PHP 4.0.3 起內置
php_cpdf.dll ClibPDF 函數庫 無
php_crack.dll 密碼破解函數庫 無
php_ctype.dll ctype 家族函數庫 自 PHP 4.3.0 起內置
php_curl.dll CURL,客戶端 URL 庫函數庫 需要:libeay32.dll,ssleay32.dll(已附帶)
php_cybercash.dll 網路現金支付函數庫 PHP <= 4.2.0
php_db.dll DBM 函數庫 已廢棄。用 DBA 替代之(php_dba.dll)
php_dba.dll DBA:資料庫(dbm 風格)抽象層函數庫 無
php_dbase.dll dBase 函數庫 無
php_dbx.dll dbx 函數庫
php_domxml.dll DOM XML 函數庫 PHP <= 4.2.0 需要:libxml2.dll(已附帶),PHP >= 4.3.0 需要:iconv.dll(已附帶)
php_dotnet.dll .NET 函數庫 PHP <= 4.1.1
php_exif.dll EXIF 函數庫 需要 php_mbstring.dll。並且在 php.ini 中,php_exif.dll 必須在 php_mbstring.dll之後載入。
php_fbsql.dll FrontBase 函數庫 PHP <= 4.2.0
php_fdf.dll FDF:表單數據格式化函數庫 需要:fdftk.dll(已附帶)
php_filepro.dll filePro 函數庫 只讀訪問
php_ftp.dll FTP 函數庫 自 PHP 4.0.3 起內置
php_gd.dll GD 庫圖像函數庫 在 PHP 4.3.2 中刪除。此外注意在 GD1 中不能用真彩色函數,用 php_gd2.dll 替代。
php_gd2.dll GD 庫圖像函數庫 GD2
php_gettext.dll Gettext 函數庫 PHP <= 4.2.0 需要 gnu_gettext.dll(已附帶),PHP >= 4.2.3 需要 libintl-1.dll,iconv.dll(已附帶)。
php_hyperwave.dll HyperWave 函數庫 無
php_iconv.dll ICONV 字元集轉換 需要:iconv-1.3.dll(已附帶),PHP >=4.2.1 需要 iconv.dll
php_ifx.dll Informix 函數庫 需要:Informix 庫
php_iisfunc.dll IIS 管理函數庫 無
php_imap.dll IMAP,POP3 和 NNTP 函數庫 無
php_ingres.dll Ingres II 函數庫 需要:Ingres II 庫
php_interbase.dll InterBase functions 需要:gds32.dll(已附帶)
php_java.dll Java 函數庫 PHP <= 4.0.6 需要:jvm.dll(已附帶)
php_ldap.dll LDAP 函數庫 PHP <= 4.2.0 需要 libsasl.dll(已附帶),PHP >= 4.3.0 需要 libeay32.dll,ssleay32.dll(已附帶)
php_mbstring.dll 多位元組字元串函數庫 無
php_mcrypt.dll Mcrypt 加密函數庫 需要:libmcrypt.dll
php_mhash.dll Mhash 函數庫 PHP >= 4.3.0 需要:libmhash.dll(已附帶)
php_mime_magic.dll Mimetype 函數庫 需要:magic.mime(已附帶)
php_ming.dll Ming 函數庫(Flash) 無
php_msql.dll mSQL 函數庫 需要:msql.dll(已附帶)
php_mssql.dll MSSQL 函數庫 需要:ntwdblib.dll(已附帶)
php_mysql.dll MySQL 函數庫 PHP >= 5.0.0 需要 libmysql.dll(已附帶)
php_mysqli.dll MySQLi 函數庫 PHP >= 5.0.0 需要 libmysql.dll(PHP <= 5.0.2 中是 libmysqli.dll)(已附帶)
php_oci8.dll Oracle 8 函數庫 需要:Oracle 8.1+ 客戶端庫
php_openssl.dll OpenSSL 函數庫 需要:libeay32.dll(已附帶)
php_oracle.dll Oracle 函數庫 需要:Oracle 7 客戶端庫
php_overload.dll 對象重載函數庫 自 PHP 4.3.0 起內置
php_pdf.dll PDF 函數庫 無
php_pgsql.dll PostgreSQL 函數庫 無
php_printer.dll 列印機函數庫 無
php_shmop.dll 共享內存函數庫 無
php_snmp.dll SNMP 函數庫 僅用於 Windows NT!
php_soap.dll SOAP 函數庫 PHP >= 5.0.0
php_sockets.dll Socket 函數庫 無
php_sybase_ct.dll Sybase 函數庫 需要:Sybase 客戶端庫
php_tidy.dll Tidy 函數庫 PHP >= 5.0.0
php_tokenizer.dll Tokenizer 函數庫 自 PHP 4.3.0 起內置
php_w32api.dll W32api 函數庫 無
php_xmlrpc.dll XML-RPC 函數庫 PHP >= 4.2.1 需要 iconv.dll(已附帶)
php_xslt.dll XSLT 函數庫 PHP <= 4.2.0 需要 sablot.dll,expat.dll(已附帶)。PHP >= 4.2.1 需要 sablot.dll,expat.dll,iconv.dll(已附帶)。
php_yaz.dll YAZ 函數庫 需要:yaz.dll(已附帶)
php_zip.dll Zip 文件函數庫 只讀訪問
php_zlib.dll ZLib 壓縮函數庫 自 PHP 4.3.0 起內置

3. PHP 檢查擴展庫或函數是否可用的代碼

1. 獲取所有可用的模塊 - get_loaded_extensions 該函數返回所有已經載入的(可用的)模塊。
用法:復制代碼 代碼如下:print_r(get_loaded_extensions());
2. 獲取指定模塊的可用函數 - get_extension_funcs 該函數返回指定模塊所有可用的函數。傳入的參數(模塊名稱)必須是小寫用法:復制代碼 代碼如下:print_r(get_extension_funcs("gd"));
3. 獲取所有已經定義的函數 - get_defined_functions 該函數返回所有已經定義的函數,包括內置函數和用戶自定義函數。
用法:復制代碼 代碼如下:function myrow($id, $data){
return "<tr><th>$id</th><td>$data</td></tr>\n";}$arr = get_defined_functions();
print_r($arr);輸出:復制代碼 代碼如下:Array([internal] => Array([0] => zend_version
[1] => func_num_args
[2] => func_get_arg
[3] => func_get_args
[4] => strlen
[5] => strcmp
[6] => strncmp
[750] => bcscale
[751] => bccomp)[user] => Array([0] => myrow))其中$arr["internal"] 是內置函數, $arr["user"] 是用戶自定義函數。
4. 檢查指定函數是否存在 - function_exists 該函數返回指定函數是否已經定義。

4. php中如何建立函數庫

Step 1 =>

php的擴展模塊都放在 ext/ 目錄下,比如說 snmp模塊、mysql模塊。 我們要建立自己的模塊,就要在ext目錄下為自己的模塊建一個目錄。比如,我們要做一個分析config文件的模塊,命名為pconfig模塊(parse config的簡寫),需在ext下建立目錄pconfig。將我寫好的7個文件到該目錄下,另外需對主目錄下的configure和internal_functions.c作一些修改。

Step 2 =>

Makefile.am Makefile.in

是模板文件,用戶執行configure時,會調用這兩個文件,生成編譯時所用的Makefile文件。修改時將小寫的pconfig換成你自己的模塊名,別忘了把大寫的PCONFIG也替換掉(不要告訴我你不會vi的替換語句)。config.m4也是執行configure將會調用的檢測腳本程序,以後我們來討論這些腳本程序的更深入的修改。現在你只需要把pconfig該成你的模塊就可以了。對config.h.stub和setup.stub也如法炮製。其實setup.stub也沒什麼用。

Step 3 =>

php3-pconfig.h 頭文件中

extern php3_mole_entry pconfig_mole_entry;

#define pconfig_mole_ptr &pconfig_mole_entry

#define phpext_pconfig_ptr pconfig_mole_ptr

這幾行定義了模塊的入口,將入口注冊到php後,php會通過模塊入口找到你寫的函數



下面幾個函數定義是用宏進行定義的,展開以後其實就是 php3_minit_pconfig , php3_rinit_pconfig ……分別在你的模塊初試化或結束時被調用,如果你的模塊很簡單,也就不需要這些定義了



extern PHP_MINIT_FUNCTION(pconfig);

extern PHP_RINIT_FUNCTION(pconfig);

extern PHP_MSHUTDOWN_FUNCTION(pconfig);

PHP_MINFO_FUNCTION(pconfig);



這是你的函數聲明,將來寫在php腳本語句中的函數名就是在PHP_FUNCTION中定義的名字。

PHP_FUNCTION(pconfig_test);

如果有多個,還可以繼續往下加

PHP_FUNCTION(pconfig_parsefile);

PHP_FUNCTION(pconfig_release); …….



Step 4 =>

接下來我們看最重點的C代碼了

function_entry pconfig_functions[] = {

PHP_FE(pconfig_test, NULL)

{NULL, NULL, NULL}

};

定義的是你的函數的入口(前面我們提到過模塊的入口),按照格式將你在頭文件中定義的函數寫進去吧。注意,這是用宏定義的,不要管語法是否正確。以後我們具體討論這些宏的用法。

php3_mole_entry pconfig_mole_entry = {

"pconfig", pconfig_functions, PHP_MINIT(pconfig), PHP_MSHUTDOWN(pconfig), PHP_RINIT(pconfig), NULL, PHP_MINFO(pconfig), STANDARD_MODULE_PROPERTIES

};

注冊模塊的入口信息,比如模塊名,函數介面,初試化模塊將調用的函數等等,如果你的模塊不執行復雜操作的話,可以忽略掉他們,寫成

php3_mole_entry pconfig_mole_entry = {

"pconfig", pconfig_functions, NULL,NULL,NULL,NULL,NULL,STANDARD_MODULE_PROPERTIES

};

Step 5 =>

寫你自己的函數

在頭文件和function_entry處,我們已經定義了自己的函數pconfig_test,現在我們就來實現pconfig_test的功能。就比如執行兩個數相加的和吧。

static void _php3_pconfig_test(INTERNAL_FUNCTION_PARAMETERS)

{ ......

}

PHP_FUNCTION(pconfig_test)

{

_php3_pconfig_test(INTERNAL_FUNCTION_PARAM_PASSTHRU);

}

當系統調用pconfig_test時,會調用你的_php3_pconfig_test函數,當然你也可以把_php3_pconfig_test里的內容直接寫在PHP_FUNCTION(pconfig_test)中,這樣做只是程序結構比較清晰。注意:不要將_php3_pconfig_test命名成php3_pconfig_test,PHP_FUNCTION(pconfig_test)宏展開後實際上就是php3_pconfig_test!

Step 6 =>

好了,現在我們開始修改configure,在echo $ac_n "checking for MySQL support""... $ac_c" 1>&6的前面(當然,如果你熟悉configure的話,可以加在任何合適的地方)加上下面幾句話

if test "${with_pconfig+set}" = set; then

withval="$with_pconfig"

# Add your lib in here

EXTRA_LIBS="$EXTRA_LIBS"

# Add your include path in here

INCLUDES="$INCLUDES"

EXT_SUBDIRS="$EXT_SUBDIRS pconfig"

EXT_LIBS="$EXT_LIBS pconfig/libphpext_pconfig.a"

EXTINFO_DEPS="$EXTINFO_DEPS ../ext/pconfig/extinfo.c.stub"

EXT_STATIC="$EXT_STATIC pconfig"

fi

修改internal_functions.c,在頭文件定義中加入#include "ext/pconfig/php3_pconfig.h"

在zend_mole_entry數組中加入phpext_pconfig_ptr,



Step 7 =>

從新configure,帶上需要的參數,不要忘記的是在參數里加入 --with-pconfig



Step 8 =>

index.php3

<? echo pconfig_test(123,678)."

"; ?>

執行%>php index.php3

810

5. 在PHP的mysqli擴展中,連接資料庫的函數是什麼

mysqli_connect,手冊上的例子如下圖:

6. 在伺服器配置PHP的時候需要開通幾個擴展,請問這幾個擴展對我的網站有何用

網路不誤導你 ,我也是網路的,擴展全開都行,不妨礙你用就是了,幹嘛非要這么細致的分析每個擴展的作用呢?給你一份快餐,要麼你吃了,要麼你不吃。你會分析其他的情況嗎?
擴展庫 說明 註解
php_bz2.dll bzip2 壓縮函數庫 無
php_calendar.dll 歷法轉換函數庫 自 PHP 4.0.3 起內置
php_cpdf.dll ClibPDF 函數庫 無
php_crack.dll 密碼破解函數庫 無
php_ctype.dll ctype 家族函數庫 自 PHP 4.3.0 起內置
php_curl.dll CURL,客戶端 URL 庫函數庫 需要:libeay32.dll,ssleay32.dll(已附帶)
php_cybercash.dll 網路現金支付函數庫 PHP <= 4.2.0
php_db.dll DBM 函數庫 已廢棄。用 DBA 替代之(php_dba.dll)
php_dba.dll DBA:資料庫(dbm 風格)抽象層函數庫 無
php_dbase.dll dBase 函數庫 無
php_dbx.dll dbx 函數庫
php_domxml.dll DOM XML 函數庫 PHP <= 4.2.0 需要:libxml2.dll(已附帶),PHP >= 4.3.0 需要:iconv.dll(已附帶)
php_dotnet.dll .NET 函數庫 PHP <= 4.1.1
php_exif.dll EXIF 函數庫 需要 php_mbstring.dll。並且在 php.ini 中,php_exif.dll 必須在 php_mbstring.dll之後載入。
php_fbsql.dll FrontBase 函數庫 PHP <= 4.2.0
php_fdf.dll FDF:表單數據格式化函數庫 需要:fdftk.dll(已附帶)
php_filepro.dll filePro 函數庫 只讀訪問
php_ftp.dll FTP 函數庫 自 PHP 4.0.3 起內置
php_gd.dll GD 庫圖像函數庫 在 PHP 4.3.2 中刪除。此外注意在 GD1 中不能用真彩色函數,用 php_gd2.dll 替代。
php_gd2.dll GD 庫圖像函數庫 GD2
php_gettext.dll Gettext 函數庫 PHP <= 4.2.0 需要 gnu_gettext.dll(已附帶),PHP >= 4.2.3 需要 libintl-1.dll,iconv.dll(已附帶)。
php_hyperwave.dll HyperWave 函數庫 無
php_iconv.dll ICONV 字元集轉換 需要:iconv-1.3.dll(已附帶),PHP >=4.2.1 需要 iconv.dll
php_ifx.dll Informix 函數庫 需要:Informix 庫
php_iisfunc.dll IIS 管理函數庫 無
php_imap.dll IMAP,POP3 和 NNTP 函數庫 無
php_ingres.dll Ingres II 函數庫 需要:Ingres II 庫
php_interbase.dll InterBase functions 需要:gds32.dll(已附帶)
php_java.dll Java 函數庫 PHP <= 4.0.6 需要:jvm.dll(已附帶)
php_ldap.dll LDAP 函數庫 PHP <= 4.2.0 需要 libsasl.dll(已附帶),PHP >= 4.3.0 需要 libeay32.dll,ssleay32.dll(已附帶)
php_mbstring.dll 多位元組字元串函數庫 無
php_mcrypt.dll Mcrypt 加密函數庫 需要:libmcrypt.dll
php_mhash.dll Mhash 函數庫 PHP >= 4.3.0 需要:libmhash.dll(已附帶)
php_mime_magic.dll Mimetype 函數庫 需要:magic.mime(已附帶)
php_ming.dll Ming 函數庫(Flash) 無
php_msql.dll mSQL 函數庫 需要:msql.dll(已附帶)
php_mssql.dll MSSQL 函數庫 需要:ntwdblib.dll(已附帶)
php_mysql.dll MySQL 函數庫 PHP >= 5.0.0 需要 libmysql.dll(已附帶)
php_mysqli.dll MySQLi 函數庫 PHP >= 5.0.0 需要 libmysql.dll(PHP <= 5.0.2 中是 libmysqli.dll)(已附帶)
php_oci8.dll Oracle 8 函數庫 需要:Oracle 8.1+ 客戶端庫
php_openssl.dll OpenSSL 函數庫 需要:libeay32.dll(已附帶)
php_oracle.dll Oracle 函數庫 需要:Oracle 7 客戶端庫
php_overload.dll 對象重載函數庫 自 PHP 4.3.0 起內置
php_pdf.dll PDF 函數庫 無
php_pgsql.dll PostgreSQL 函數庫 無
php_printer.dll 列印機函數庫 無
php_shmop.dll 共享內存函數庫 無
php_snmp.dll SNMP 函數庫 僅用於 Windows NT!
php_soap.dll SOAP 函數庫 PHP >= 5.0.0
php_sockets.dll Socket 函數庫 無
php_sybase_ct.dll Sybase 函數庫 需要:Sybase 客戶端庫
php_tidy.dll Tidy 函數庫 PHP >= 5.0.0
php_tokenizer.dll Tokenizer 函數庫 自 PHP 4.3.0 起內置
php_w32api.dll W32api 函數庫 無
php_xmlrpc.dll XML-RPC 函數庫 PHP >= 4.2.1 需要 iconv.dll(已附帶)
php_xslt.dll XSLT 函數庫 PHP <= 4.2.0 需要 sablot.dll,expat.dll(已附帶)。PHP >= 4.2.1 需要 sablot.dll,expat.dll,iconv.dll(已附帶)。
php_yaz.dll YAZ 函數庫 需要:yaz.dll(已附帶)
php_zip.dll Zip 文件函數庫 只讀訪問
php_zlib.dll ZLib 壓縮函數庫 自 PHP 4.3.0 起內置

7. 如何寫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下開發的擴展都有聯系。

8. php-cpp 開發的擴展如何發布

詳情如下:
PHP-CPP是一個用於開發PHP擴展的C++庫。PHP-CPP提供了一系列完善的文檔、易於使用和擴展的類,讓你可以相對快速的創建PHP的原生擴展。
用C++編寫的演算法看起來幾乎與用PHP編寫的演算法相同。如果你知道如何用PHP編程,你可以很容易地學習如何在C++中做同樣的事情。實際上,PHP和大多數PHP函數名的語法都直接來自C和C++語法。

9. PHP的GD庫函數介紹 什麼是GD庫

GD庫,是php處理圖形的擴展庫,GD庫提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。

在網站上GD庫通常用來生成縮略圖,或者用來對圖片加水印,或者用來生成漢字驗證碼,或者對網站數據生成報表等。在PHP處理圖像,可使用GD庫,而GD庫開始時是支持GIF的,但由於GIF使用了有版權爭議的LZW演算法,會引起法律問題,於是從 GD 庫 1.6 版起所有的 GIF 支持都移除了,但是又在 GD 庫 2.0.28 版起又加了回來。如果使用二者之間版本的 GD 庫時 GIF 相關函數不可用。

安裝與配置

編輯

如果是 win 的伺服器,比較簡單,步驟如下:

1. 用dos命令(也可以手動操作,拷貝dlls文件夾里所有dll文件到system32目錄下) c:\php\dlls\*.dll c:\windows\system32\

2. 打開php.ini

設置extension_dir = "c:/php/extensions/";

3. 在「;extension=php_gd2.dll」一行,把extension前面的分號去掉,如果沒有php_gd2.dll,php_gd.dll也一樣,保證確實存在這一文件c:/php/extensions/php_gd2.dll.

linux伺服器上配置方法:

yum install php-gd* #適用於32bit操作系統安裝命令;

yum install php-gd.x86_64 #適用於64bit操作系統安裝命令;

10. 什麼是php擴展,從原理方面解釋,詳細一點

就是按照一定規則編寫的一些的函數庫,在WINDOWS是DLL文件,在UNIX下是SO文件,這些庫能讓PHP環境下的程序多出一些可以調用的函數,完成特定的功能。

比如MYSQL擴展多了mysql_*函數,可以連接MYSQL資料庫、進行數據檢索等操作。

閱讀全文

與php擴展函數庫相關的資料

熱點內容
emerson伺服器怎麼短接啟動 瀏覽:559
工控編程人員工資 瀏覽:397
速成義大利語pdf 瀏覽:250
連續加減乘除法的演算法 瀏覽:652
用mfc編程實現dda演算法 瀏覽:41
linux命令打開應用 瀏覽:146
改造後的程序員 瀏覽:270
數控編程變數 瀏覽:785
江門哪裡有plc編程系統 瀏覽:378
安卓手機如何下載外服b站 瀏覽:700
pythonetree庫 瀏覽:759
數據插值演算法 瀏覽:723
澳大利亞加密貨幣逃稅 瀏覽:484
pdf文檔如何壓縮 瀏覽:329
java單例模式線程安全 瀏覽:646
特種pdf 瀏覽:160
加油什麼app劃算 瀏覽:715
開服要什麼樣的伺服器 瀏覽:33
pdf文件太大怎麼壓縮 瀏覽:29
UK開票顯示文件夾不存在 瀏覽:668