顯示具有 php 標籤的文章。 顯示所有文章
顯示具有 php 標籤的文章。 顯示所有文章

星期日, 10月 21, 2007

php函式庫

原文出處(簡體)

php的ming庫用來生成flash!雖然模組是試驗性質的, 不過比較有趣。
一張大大的表, 很有趣, 給人一種在8g的感覺。

• sapi/php4activescript.dll (php5activescript.dll) - ActiveScript engine, allowing you to embed PHP in your Windows applications.
• sapi/php4apache.dll (php5apache.dll) - Apache 1.3.x module.
• sapi/php4apache2.dll (php5apache2.dll) - Apache 2.0.x module.
• sapi/php4isapi.dll (php5isapi.dll) - ISAPI Module for ISAPI compliant web servers like IIS 4.0/PWS 4.0 or newer.
• sapi/php4nsapi.dll (php5nsapi.dll) - Sun/iPlanet/Netscape server module.
• sapi/php4pi3web.dll (no equivalent in PHP 5) - Pi3Web server module.

表格 6-1. 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 起內置

接下來看重要的 PHP 擴展配置部分,找到 Dynamic Extensions ,往下一點是 Windows Extensions 的配置部分。可以看到如:

;extension=php_bz2.dll
;extension=php_cpdf.dll
……
;extension=php_yaz.dll
;extension=php_zip.dll

這裏列出了 PHP 的所有可支持擴展,前面都加了分號注釋掉,表示目前 PHP 配置不支援該擴展,我們可以將分號去掉以便讓 PHP 支援這些擴展,但是因為 dlls 檔夾裏沒有包含全部可擴展庫的 DLL 檔,所以我們只能選擇性的安裝,需要知道如何獲得其他 dlls 檔夾下沒有提供的 dll 檔,可以查看《PHP 中文手冊》(後面會提到它的下載方法)的相關部分。這裏不做說明。
下面提幾個 dlls 檔夾下包含的、比較實用的 PHP 擴展:
extension=php_curl.dll : CURL 擴展支持。
extension=php_gd2.dll : GD 圖像庫擴展支援。包括生成圖像等的一系列函數,比較有用。
extension=php_ming.dll : Ming 庫擴展支援,該擴展提供生成 flash 檔的相關函數,支援 flash 4 的大部分功能。
extension=php_pdf.dll : PDF 庫擴展支援,該擴展提供操作 PDF 檔的函數的支援。
extension=php_xslt.dll : 提供 XSLT 擴展支援,該擴展提供對 XML 的轉換。
以下列出默認情況下所有支援的 DLL 擴展的配置,去掉分號的表示支持,我們所要做的只是判斷是否去掉分號而已。如果你暫時不知道你需要哪些擴展,那麼避免麻煩就按照最大化安裝,相應行應做如下設置:

;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
extension=php_bz2.dll
extension=php_cpdf.dll
extension=php_crack.dll
extension=php_curl.dll
extension=php_db.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_domxml.dll
extension=php_exif.dll
extension=php_fdf.dll
extension=php_filepro.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_hyperwave.dll
extension=php_iconv.dll
;extension=php_ifx.dll
extension=php_iisfunc.dll
extension=php_imap.dll
extension=php_interbase.dll
extension=php_java.dll
extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_mssql.dll
extension=php_msql.dll
;extension=php_oci8.dll
extension=php_openssl.dll
;extension=php_oracle.dll
extension=php_pdf.dll
;extension=php_pgsql.dll
extension=php_printer.dll
extension=php_shmop.dll
extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xslt.dll
extension=php_yaz.dll
extension=php_zip.dll

找到 [Session] 部分,我們這裏只修改一個參數 session.save_path ,默認是 /tmp ,我們將其指向 C:/TEMP/ 目錄(用斜杠或反斜杠來表示路徑在 PHP 中是一致的),記得在 C 盤根目錄下建立一個名為 temp 的檔夾:

session.save_path = “C:/temp/”

這個是設置會話的存放路徑的。OK,php.ini 檔的配置告一段落,Ctrl+s 保存檔後關閉記事本。

PHP模組php_curl.dll安裝方式

版本:php5.05
已經內置有php_curl.dll,在ext目錄下,此DLL用於支援SSL和zlib.
在php.ini中找到有extension=php_curl.dll, 去掉前面的注釋.
設置extension_dir=c:\php\ext, 刷新PHP頁面時報錯, 說找不到模組php_curl.dll.
拷貝php_curl.dll 到windows\system32,還是同樣的錯.
在網上找了一下,需要將:
dl.bitsCN.com網管軟體下載
libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll
bbs.bitsCN.com國內最早的網管論壇
都拷貝到system32目錄下,重啟apache即可.


參考網址(簡體)

星期六, 7月 21, 2007

PHP 中的類別-什麼叫類別

轉載自:http://blog.csdn.net/zcatlinux/archive/2004/10/19/142267.aspx (china)

在闡述類的概念之前我們來先說說面向物件編程的概念:面向物件的程式設計(Object-Oriented Programming,簡記為OOP)立意於創建軟體重用代碼,具備更好地模擬現實世界環境的能力,這使它被公認為是自上而下編程的優勝者。它通過給程 序中加入擴展語句,把函數封裝進編程所必需的物件中。面向物件的編程語言使得複雜的工作條理清晰、編寫容易。說它是一場革命,不是對物件本身而 言,而是對它們處理工作的能力而言。物件並不與傳統程式設計和編程方法相容,只是部分面向物件反而會使情形更糟。除非整個開發環境都是面向物件的,否則對 象產生的好處還沒有帶來的麻煩多。有人可能會說PHP不是一個真正的面向物件編程的語言, PHP 是一個混合型 語言,你可以使用面向物件編程,也可以使用傳統的過程化編程。然而,對於大型專案的開發,你可能想需要在PHP中使用純的面向物件編程去聲明類,而且在你 的專案開發只用物件和類。隨著專案越來越大,使用面向物件編程可能會有幫助,面向物件編程代碼很容易維護,容易理解和重複使用,這些就是軟體工程的基礎。 在基於Web的項目中應用這些概念就成為將來網站成功的關鍵。

  物件(Object)是問題域或實現域中某些事物的一個抽象,它反 映此事物在系統中需要保存的資訊和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。 關於物件要從兩方面理解:一方面指系統所要處理的現實世界中的物件;另一方面物件是電腦不直接處理的物件,而是處理相應的電腦表示,這種電腦表示也 稱為物件。簡單的來說,一個人就是一個物件,一個尺子也可以說是個物件。當這些物件可以用資料直接表示時,我們就稱他為屬性,尺子的度量單位可以是釐米, 公尺或英尺,這個度量單位就是尺子的屬性。
  
  在PHP裏我們可以定義一個類,類(Class)就是指變數與一些使用這些變數 的函數的集合。PHP是一種鬆散類型的語言,所以通過類型重載不起作用,通過參數的個數不同來重載也不起作用。 有時在面向中重載構造函數非常好,這樣你可以通過不同的方法創建物件(傳遞不同數量的參數)。在PHP中就是通過類來實現的。

  在PHP中是通過類來完成資訊封裝的,在PHP中定義類的語法是:
class Class_name //
在面向物件編程類中,習慣上類的第一個字元為大寫,並且必須符合變數的命名規則。
{

//
函數與變數的集合

}
?>

  在定義類時你可以按自已的喜好的格式進行定義,但最好能保持一種標準,這樣開發起來會更有效些。

  資料成員在類中使用"var"聲明來定義,在給資料成員賦值之前,它們是沒有類型的。一個資料成員可以是一個整數,一個陣列,一個相關陣列(Associative Array)或者是一個物件。

下面是一個類定義的實際例子:
class Student
{
var $str_Name; //
姓名
var $str_Sex; //
性別
var $int_Id; //
學號
var $int_English; //
英語成績
var $int_maths; //
數學成績
}
?>

  這是一個很普通定義類的簡單例子,用於顯示學生的學習成績,類名為StudentStudent類包涵了一個學生的基本屬性:姓名、性別、學號、英語成績和數學成績。
  
   function我們稱之為在類中被定義的函數,在函數中訪問類成員變數時,你應該使用$this->var_name,其中var_name指 的是類中被聲明的變數,否則對一個函數來說,它只能是局部變數。 我們先定義一個Input()的函數,用來給實例中的物件賦以初值:
function Input ( $Name, $Sex, $Id, $Englis, $Maths)
{
$this->str_Name=$Name;
$this->str_Sex =$Sex;
$this->int_Id =$Id;
$this->int_Englis=$English;
$this->int_Maths=$Maths;
}

現在我們再定義一個叫“ShowInfo()”的函數,用於列印學生的基本情況:
function ShowInfo() //
定義ShowInfo()函數
{
echo (“
姓名:$this->str_Name

”);
echo (“
性別:$this->str_Sex

”);
echo (“
學號:$this->int_Id

”);
echo (“
英語成績:$this->int_English

”);
echo (“
數學成績:$this->int_Maths

”);
}

而定義好的類則必須使用new關鍵字來生成物件:
$A_student=new Student;
例如我們要為一個名為$Wing的物件創建實例,並進行賦值,可以使用下面的代碼:
$Wing =new Student; //
new關鍵字來生成物件
$Wing ->Input (“Wing”,”
”,33,95,87);
//
分別輸入Wing的姓名、性別、學號、英語成績、數學成績,其中姓名和性別是字元型變數,所以需要用雙引號,其他為數值型變數則不需要。
通過下面這段完整的源代碼,我們就可以很清楚的看到類在PHP是怎麼被運用的:


class Student
{
var $str_Name;
var $str_Sex;
var $int_Id;
var $int_English;
var $int_maths;

function Input ( $Name, $Sex, $Id, $English, $Maths)
{
$this->str_Name=$Name;
$this->str_Sex =$Sex;
$this->int_Id =$Id;
$this->int_English=$English;
$this->int_Maths=$Maths;
}
function ShowInfo()
{
echo (“
姓名:$this->str_Name

”);
echo (“
性別:$this->str_Sex

”);
echo (“
學號:$this->int_Id

”);
echo (“
英語成績:$this->int_English

”);
echo (“
數學成績:$this->int_Maths

”);
}
}


$Wing = new Student;
$Wing->Input (“Wing”,”
”,33,95,87);
$Paladin = new Student;
$Paladin->Input (“paladin”,”
”,38,58,59.5);

$Wing->ShowInfo();
$Paladin->ShowInfo();

?>
執行結果應是這樣的:

姓名:Wing
性別:男
學號:33
英語成績:95
數學成績:87
姓名:Paladin
性別:女
學號:38
英語成績:58
數學成績:59.5

  PHP現有的版本較以前的版本在對面向物件編程的支援方面有了很大的改善,但支持的還不是很完整,不過現階段PHP對面向物件編程語言提供的支援不但有利於我們設計程式的結構,對於對程式的維護也能提供很大的幫助。

全文出自 : cngnu


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=142267