第一章 PHP簡介
PHP 是一種伺服器內建式的script 語言,它的出現使得在unix上快速地開發動態web成為現實。
PHP是Rasmus Lerdorf在1994年秋天構思出來的。最早的未發行版本是他在自己的首頁上來用來和觀看他的線上簡曆的人保持聯絡的。第一個交付使用者使用的版本是在1995年初發行的,它只是被當作一個個人首頁製作工具。當時它僅包括一個只能懂得很少幾條巨集指令的非常簡單的分析引擎和一組用於首頁資訊反饋的工具(一個留言簿,一個計數器和一些其他的東西)。1995年年中,Rasmus重寫了整個解析器,並取名為PHP/FI 2。FI來源於他寫的另外一個html表單整合資料的軟體包。他把個人首頁工具,表單整合工具合并在一起,並加入了mSQL資料庫的支援,這樣就有了PHP/FI。此後PHP/FI便以一種令人驚異的速度傳播開來,人們開始大量使用它編寫程式。
我們無法確切的統計它的使用範圍,但是根據估計到1996年底,世界上已經有至少15,000個網站在使用PHP/FIl。到了1997年年中這個數字已經增長到超過50,000個網站。 1997年年中我們也發現了PHP發展過程中一個重大的轉折。這就是PHP的開發從Rasmus個人的愛好升級到一群程式員們有組織的工作。 再後來,這個解析器被Zeev Suraski和Andi Gutmans重寫,通過這次全面的重寫,大量PHP/FI的功能被移植到PHP中,並且成為了PHP的基本雛形。
到1998年年中時,已經有大量的商業化產品,例如 C2的 StrongHold web server和RedHat Linux捆綁了PHP/FI解析器或PHP解析器,根據NetCraft估計的保守資料,PHP已經被世界上150,000個網站所採用。通過進一步分析,我們知道其使用數量遠比使用Netscape公司旗艦產品--企業級WEB伺服器的網站多。 PHP大量採用了C, Java和Perl語言的文法,並加入了各種PHP自己的特徵。它與javascript等語言的一個區別就是PHP是在伺服器執行,客戶機所看到的是其在伺服器上啟動並執行結果,這意味著您若想採用PHP scrpit,必須得有 WEB SERVER 支援。
PHP支援HTTP的身份認證、cookie、GIF圖象建立,它的一個最有代表性的特點是它的資料庫層,它使得編寫基於資料庫的網頁變得非常簡單。下列出了目前所支援的資料庫:
Oracle ,Sybase , mSQL ,MySQL ,Informix ,Solid dBase ,ODBC, Unix dbm, PostgreSQL ,Adabas D,FilePro Velocis。
PHP也支援與採用POP3、HTTP、SNMP、NNTP、IMAP等協議的服務進行網路編程。
PHP的程式模式
有三種方法從HTML進入"PHP程式模式":
第一種方法: <?php PHP語句; ?>
如:
<?php echo("this is the simplest, an SGML processing instructionn"); ?>
第二種方法: <?php PHP語句; ?>
如:
<?php echo("if you want to serve XML documents, do like thisn"); ?>
第三種方法:
<script language="php">
PHP語句;
</script>
如:
<script language="php">
echo("some editors (like FrontPage) don't like processing instructions");
</script>
第二章 變 量
PHP支援下面類型的變數:
(一)、內部變數
主要有整數(interger),浮點數(float-point numbers),字串(string),數組(array),對象(object)。
1 初始設定變數
要在PHP中初始設定變數, 你只要簡單的給它賦值即可。對於大多數類型,這是最直接的。對於數組和對象,可以使用其它方法。
2 初始化數組
數組可以使用這兩種方法之一來賦值: 使用一系列連續數值,或使用array()函數構造 (見 Array functions 部分)。
要將連續的數值加進數組,你只需將要賦值賦給不帶下標的陣列變數。該值會作為數組的最後元素加進數組中。
例:
$names[] = "Jill"; // $names[0] = "Jill"
$names[] = "Jack"; // $names[1] = "Jack"
與c、perl相似,數組下標也是從0開始。
3 初始化對象
要初始化一個對象,需用new語句建立該類型的變數。
class foo {
function do_foo() {
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
4 變數範圍