<output id="r87xx"></output>
    1. 
      
      <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
        •   

               當(dāng)前位置:首頁>軟件介紹>php語言入門教程 查詢:
               
          php語言入門教程

                  一、PHP簡介

                  PHP是一種易于學(xué)習(xí)和使用的服務(wù)器端腳本語言。只需要很少的編程知識你就能使用PHP建立一個真正交互的WEB站點。本教程并不想讓你完全了解這種語言,只是能使你盡快加入開發(fā)動態(tài)web站點的行列。我假定你有一些6>HTML(或者HTML編輯器)的基本知識和一些編程思想。

                  1.簡介

                  PHP是能讓你生成動態(tài)網(wǎng)頁的工具之一。PHP網(wǎng)頁文件被當(dāng)作一般HTML網(wǎng)頁文件來處理并且在編輯時你可以用編輯HTML的常規(guī)方法編寫PHP。

                  PHP代表:超文本預(yù)處理器(PHP: Hypertext Preprocessor)。PHP是完全免費的,不用花錢,你可以從PHP官方站點.

                  如果你的機器解決了2000問題,那么PHP也一樣沒有千年蟲問題!

                  1.1 歷史

                  三年前,Rasmus Lerdorf為了創(chuàng)建他的在線簡歷而創(chuàng)造了"個人主頁工具"(Personal Home Page Tools)。這是一種非常簡單的語言。其后越來越多的人們注意到了這種語言并對其擴展提出了各種建議。在許多人的無私奉獻下以及這種語言本身的源代碼自由性質(zhì),它演變成為一種特點豐富的語言,而且現(xiàn)在還在成長中。

                  PHP雖然很容易學(xué)習(xí),但是速度上比mod_perl(植入web服務(wù)器的perl模塊)慢?,F(xiàn)在有了可以與mod_perl速度想媲美的被稱作Zend的新引擎,而PHP4就可以充分利用這個引擎。PHP4還處在BETA測試階段。Andy Gutmans和Zeev Suraki是Zend的主要作者。可以去Zend站點.

                  PHP的應(yīng)用在個人性質(zhì)的web工程中增長顯著。根據(jù)Netcraft在1999年10月的報告,有931122個域和321128個IP地址利用PHP技術(shù)。1.2 PHP的先進之處

                  應(yīng)用PHP有許多好處。當(dāng)然已知的不利之處在于PHP由于是開放源碼項目,沒有什么商業(yè)支持,并且由此而帶來的執(zhí)行速度緩慢(直到PHP4之前)。但是PHP的郵件列表很是有用而且除非你正在運行像Yahoo!或者Amazon這樣的極受歡迎的站點,你不會感覺出PHP的速度與其他的有什么不同。最起碼我就沒有感覺出來!好了,讓我們來看看PHP有那些優(yōu)點:

                  (1)、學(xué)習(xí)過程我個人更喜歡PHP的非常簡單的學(xué)習(xí)過程。與Java和Perl不同,你不必把頭埋進100多頁的文檔中努力學(xué)習(xí)才可以寫出一個象樣的程序。只要了解一些基本的語法和語言特色,你就可以開始你的PHP編碼之旅了。之后你在編碼過程中如果遇到了什么麻煩,還可以再去翻閱相關(guān)文檔。

                  PHP的語法與C,Perl,ASP或者JSP。對于那些對上述之一的語言較熟悉的人來說,PHP太簡單了。相反的,如果你對PHP了解較多,那么你對于其他幾種語言的學(xué)習(xí)都很簡單了。

                  你只需要30分鐘就可以將PHP的核心語言特點全部掌握,你可能已經(jīng)非常了解HTML,甚至你已經(jīng)知道怎樣用編輯設(shè)計軟件或者手工來制作好看的WEB站點。由于PHP代碼能夠無障礙的添加進你的站點,在你設(shè)計和維護站點的同時,你可以很輕松的加入PHP使得你的站點更加具有動態(tài)特性。

                  (2)、數(shù)據(jù)庫連接PHP可以編譯成具有與許多數(shù)據(jù)庫相連接的函數(shù)。PHP與MySQL是現(xiàn)在絕佳的組合。你還可以自己編寫外圍的函數(shù)取間接存取數(shù)據(jù)庫。通過這樣的途徑當(dāng)你更換使用的數(shù)據(jù)庫時,可以輕松的更改編碼以適應(yīng)這樣的變化。PHPLIB就是最常用的可以提供一般事務(wù)需要的一系列基庫。

                  (3)、可擴展性

                  就像前面說的那樣,PHP已經(jīng)進入了一個高速發(fā)展的時期。對于一個非程序員來說為PHP擴展附加功能可能會比較難,但是對于一個PHP程序員來說并不困難。

                  (4)、面向?qū)ο缶幊?/p>

                  PHP提供了類和對象。基于web的編程工作非常需要面向?qū)ο缶幊棠芰?。PHP支持構(gòu)造器、提取類等。

                  (5)、可伸縮性

                  傳統(tǒng)上網(wǎng)頁的交互作用是通過CGI來實現(xiàn)的。CGI程序的伸縮性不很理想,因為它為每一個正在運行的CGI程序開一個獨立進程。解決方法就是將經(jīng)常用來編寫CGI程序的語言的解釋器編譯進你的web服務(wù)器比如mod_perl,JSP。PHP就可以以這種方式安裝,雖然很少有人愿意這樣以CGI方式安裝它。內(nèi)嵌的PHP可以具有更高的可伸縮性。

                  (6)、 更多特點

                  PHP的開發(fā)者們?yōu)榱烁m合web編程,開發(fā)了許多外圍的流行基庫,這些庫包含了更易用的層。你可以利用PHP連接包括Oracle,MS-Access,Mysql在內(nèi)的大部分數(shù)據(jù)庫。你可以在蒼蠅上畫圖,編寫程序下載或者顯示e-mail。你甚至可以完成網(wǎng)絡(luò)相關(guān)的功能。最好的是,你可以選擇你的PHP安裝版本需要哪些功能。引用Nissan的Xterra的話來說就是PHP可以做到你想讓它做到的一切而且無所不能!

                  1.3 競爭對手:ASP,mod_perl,JSP

                  我當(dāng)然不清楚ASP/JSP能做些什么。不過明確的是編寫那樣的代碼有多簡單,購買它們會有多昂貴以及它們需要多么昂貴和強大的硬件。如果你有什么中立的觀點(比如說沒有被SUN和Microsoft的百萬美金所影響),請順便通知我。

                  據(jù)我所知,JSP基于Java,因此Java程序員可以輕松開始編碼。ASP只是一個一般的引擎,具有支持多種語言的能力,不過默認的并且是最常用的還是VBScript。

                  mod_perl與Perl一樣強大,只是更快一些。

                  二、PHP入門

                  PHP站點的在線教程已經(jīng)很棒了。在那里還有一些其他教程的鏈接。而本文的該部分將讓你對PHP熟悉一點。我不可能做到?jīng)]有任何遺漏,我的目的只在于能讓你迅速開始你的PHP編程。

                  2.1 首要條件

                  你首先必須要有一個正在工作著的支持PHP的web服務(wù)器。我假定在你的服務(wù)器上所有PHP文件的擴展名為.php3。

                  2.2 PHP的安裝

                  生成一個名為test.php3的文件,含有以下內(nèi)容:

                  然后在你的瀏覽器中打開此文件??纯催@個頁面你就知道你的PHP安裝使用的選項了。

                  2.3 語法

                  就像前面提到的一樣,你可以混合編寫你的PHP代碼和HTML代碼。因此你必須有辦法將兩者區(qū)別開來。以下就是你可以采用的幾種方法。你可以選用其中一種你最適應(yīng)的并且就這樣堅持這種方法!

                  從HTML中分離以下是可以使用的方法:語句與Perl和C一樣,在PHP中用(;)來分隔語句。那些從HTML中分離出來的標志也表示語句的結(jié)束。

                  注釋

                  PHP支持C,C++和Unix風(fēng)格的注釋方式:

                  /* C,C++風(fēng)格多行注釋 */

                  // C++風(fēng)格單行注釋

                  # Unix風(fēng)格單行注釋Hello,World!

                  通過我們已經(jīng)學(xué)過的知識,你可以編寫一個最簡單的程序輸出一

                  個也許是程序世界中最有名的詞語:

                  First PHP page

                  // Single line C++ style comment

                  /*

                  printing the message

                  */

                  echo "Hello World!";

                  # Unix style single line comment

                  2.4 數(shù)據(jù)類型

                  PHP支持整數(shù)、浮點數(shù)、字符串、數(shù)組和對象。變量類型通常不由程序員決定而由PHP運行過程決定(真是好的解脫!)。但是類型也可以被函數(shù)cast或者settype明確的設(shè)定。

                  數(shù)值

                  數(shù)值類型可以是整數(shù)或是浮點數(shù)。你可以用以下的語句來為一個數(shù)值賦值:

                  $a 1234; # 十進制數(shù)

                  $a -123; # 負數(shù)

                  $a 0123; # 八進制數(shù) 等于十進制數(shù)的83

                  $a 0x12; # 十六進制數(shù)等于十進制數(shù)的18

                  $a 1.234; # 浮點數(shù)"雙精度數(shù)"

                  $a 1.2e3; # 雙精度數(shù)的指數(shù)形式字符串

                  字符串可以由單引號或雙引號引出的字段定義。注意不同的是被單引號引出的字符串是以字面定義的,而雙引號引出的字符串可以被擴展。反斜杠()可以被用來分割某些特殊字符。舉例如下:

                  $first 'Hello';

                  $second "World";

                  $full1 "$first $second"; # 產(chǎn)生 Hello World

                  $full2 '$first $second';# 產(chǎn)生 $first $second

                  可以將字符和數(shù)字利用運算符號連接起來。字符被轉(zhuǎn)化成數(shù)字,利用其最初位置。在PHP手冊中有詳細的例子。

                  數(shù)組與哈希表

                  數(shù)組與哈希表以同樣的方法被支持。怎樣運用取決于你怎樣定義它們。你可以用list或者array來定義它們,也可以直接為數(shù)組賦值。數(shù)組的索引從0開始。雖然我在這里沒有說明,但是你一樣可以輕易的使用多維數(shù)組。// 一個包含兩個元素的數(shù)組

                  $a[0] "first";

                  $a[1] "second";

                  $a[] "third"; // 添加數(shù)組元素的簡單方法

                  // 現(xiàn)在$a[2]被賦值為"third"

                  echo count$a; // 打印出3,因為該是數(shù)組有3個元素

                  // 用一個語句定義一個數(shù)組并賦值

                  $myphonebook array

                  "sbabu" "5348",

                  "keith" "4829",

                  "carole" "4533" ;

                  // 噢,忘了教長吧,讓我們添加一個元素

                  $myphonebook["dean"] "5397"; // 你定義的carale元素錯了,讓我們更正它

                  $myphonebook["carole"] "4522" // 我還沒有告訴你怎樣使用數(shù)組的相似支持方式嗎讓我們看一看

                  echo "$myphonebook[0]"; // sbabu echo "$myphonebook[1]"; // 5348 其他一些對數(shù)組或哈希表有用的函數(shù)包括sort,next,prev和each。

                  對象使用new語句產(chǎn)生一個對象:

                  class foo

                  function do_foo

                  echo "Doing foo.";

                  $bar new foo;

                  $bar-do_foo;

                  改變變量類型

                  在PHP手冊中提到:"PHP不支持(也不需要)直接在聲明變量時定

                  義變量類型;變量類型將根據(jù)其被應(yīng)用的情況決定。如果你為變量var賦值為一個字符串,那么它變成了一個字符串。如果你又為它賦了整數(shù)值,那么它就變成了整數(shù)。"

                  $foo "0"; // $foo是字符串ASCII 48

                  $foo++; // $foo是字符串"1" ASCII 49

                  $foo + 1; // $foo現(xiàn)在是整數(shù)2

                  $foo $foo + 1.3; // $foo是一個雙精度數(shù)3.3

                  $foo 5 + "10 Little Piggies"; // $foo是一個整數(shù)15

                  $foo 5 + "10 Small Pigs"; // $foo是一個整數(shù)15

                  如果想要強行轉(zhuǎn)換變量類型,可以使用與C語言相同的函數(shù)settype。

                  2.5 變量與常量

                  可能你已經(jīng)注意到,變量都有一個美元符號($)的前綴。所有變量都是局部變量,為了使得定義的函數(shù)中可以使用外部變量,使用global語句。而你要將該變量的作用范圍限制在該函數(shù)之內(nèi),使用static語句。

                  $g_var 1 ; // 全局范圍

                  function test

                  global $g_var; // 這樣就可以聲明全局變量了  

                  更先進一些的是變量的變量表示。請參考PHP手冊。這在有時會顯得很有用。

                  PHP內(nèi)置了許多已定義的變量。你也可以用define函數(shù)定義你

                  自己的常量,比如define"CONSTANT","value"。 2.6 運算符

                  PHP具有C,C++和Java中的通常見到的運算符。這些運算符的優(yōu)

                  先權(quán)也是一致的。賦值同樣使用""。

                  算術(shù)和字符以下只有一種運算符是有關(guān)字符的: $a + $b :加

                  $a - $b :減

                  $a * $b :乘

                  $a / $b :除

                  $a % $b :取模(余數(shù))

                  $a$b :字符串連接

                  邏輯和比較

                  邏輯運算符有:

                  $a || $b :或

                  $a or $b :或

                  $a && $b :與

                  $a and $b :與

                  $a xor $b :異或 (當(dāng)$a或$b為true時為true,兩者一樣時為

                  false)

                  ! $a :非

                  比較運算符有:

                  $a $b :相等

                  $a ! $b :不等

                  $a $b :小于

                  $a $b :小于等于

                  $a $b :大于

                  $a $b :大于等于

                  與C一樣PHP也有三重運算符(:)。位操作符在PHP同樣存在。 優(yōu)先權(quán)

                  就和C以及Java一樣!

                  2.7 控制流程結(jié)構(gòu)

                  PHP有著與C一樣的流程控制。我將在下面大概介紹。 if, else, elseif, if: endif if 表達式一

                  elseif 表達式二

                  else  

                  // 或者像Python一樣

                  if 表達式一 :

                  elseif 表達式二 :

                  else :

                  endif ;

                  Loops. while, do..while, for

                  while 表達式  

                  do  

                  while 表達式;

                  for 表達式一; 表達式二; 表達式三 //或者像Python一樣

                  while expr :

                  endwhile ;

                  switch

                  switch是對多重if-elseif-else結(jié)構(gòu)的最好的替換:

                  switch $i

                  case 0:

                  print "i equals 0"; case 1:

                  print "i equals 1"; case 2:

                  print "i equals 2"; break, continue break中斷當(dāng)前的循環(huán)控制結(jié)構(gòu)。

                  continue被用來跳出剩下的當(dāng)前循環(huán)并繼續(xù)執(zhí)行下一次循環(huán)。

                  require, include

                  就像C中的#include預(yù)處理一樣。你在require中指定的那個文件將替代其在主文件中的位置。在有條件的引用文件時,可以使用include。這樣就使得你可以將復(fù)雜的PHP文件分割成多個文件并且在不同需要時分別引用它們。2.8 函數(shù)

                  你可以像以下的例子一樣定義自己的函數(shù)。函數(shù)的返回值可以是任何數(shù)據(jù)類型:

                  function foo 變量名一, 變量名二, , 變量名n

                  echo "Example function. ";

                  return $retval;

                  所有PHP代碼都可以出現(xiàn)在函數(shù)定義中,甚至包括對其他函數(shù)和類的定義。函數(shù)必須在引用之前定義。

                  2.9 類

                  利用類模型建立類??梢詤⒖糚HP手冊中對類的詳細解釋。

                  class Employee

                  var $empno; // 員工人數(shù)

                  var $empnm; // 員工姓名

                  function add_employee$in_num, $in_name

                  $this-empno $in_num;

                  $this-empnm $in_name;  

                  function show

                  echo "$this-empno, $this-empnm";

                  return;  

                  function changenm$in_name

                  $this-empnm $in_name;  

                  $sbabu new Employee;

                  $sbabu-add_employee10,"sbabu";

                  $sbabu-changenm"babu";

                  $sbabu-show;

                  三、從實例入手  

                  PHP的許多特點與其他軟件或者工具有關(guān)。利用迄今為止我們所學(xué)到的PHP知識,我們可以試著建立一個簡單交互的網(wǎng)站。利用這一過程我們又可以學(xué)到不少東西。好吧,我們現(xiàn)在開始專注于一個典型個人網(wǎng)站的建設(shè)。

                  3.1 計劃一個站點

                  一般一個個人站點包括一個歡迎頁面、一個留言本頁面、一個書簽鏈接頁面、一個計數(shù)器、聯(lián)系信息,甚至還有照片集和一些音樂文件等等。讓我們從一個標題頁面、一個聯(lián)系信息頁面和一個簡歷頁面開始。我們同樣需要標準的通用的頁面頭部和底部。  

                  Copyright我自己,19993.2 HTML到PHP從上面你可以看出,每個頁面有相同的頭部和底部。像上面那樣每個頁面都寫入相同的信息在工作量少的時候還可以,但是想象一下當(dāng)有100多頁面且你需要全部更改其頭部或底部時你要花費多大精力一頁一頁的手工更改是一件多么冗長無趣的事情啊!所以我們應(yīng)該為這些頁面編寫PHP的頭部和底部文件,之后我們只要在每個HTML頁面中引用它們就行了。我們將把這些include文件放在一個叫include的子目錄下。下面我們就把這些站點的通用內(nèi)容寫進文件中。

                  全站通用變量設(shè)定:common.inc

                  // 全站通用變量

                  $MyEmail "[email protected]";

                  $MyEmailLink "$MyEmail";$MyName "PHP

                  Talk";$MySiteName $MyName."'s Home Page";通用頁面頭部:header.inc// 定義通用頁面頭部通用頁面底部:footer.inc// 通用頁面底部Copyrightby, 1999新的頁面front.php3:include"include/common.inc";$title

                  "Welcome";include"include/header.inc";歡迎來我的寒舍,雖然這里現(xiàn)在暫時還沒有什么。不過我希望馬上就可以多起來。include"include/footer.inc";新的

                  cont.php3:include"include/common.inc";$title "Contact

                  Information";include"include/header.inc";你可以通過1-800-PHP-INFO聯(lián)系我include"include/footer.inc";現(xiàn)在你就可以猜出這樣安排的好處了。如果你想改動頁面的頭部或者底部,你只需要改動相應(yīng)的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件就行了。另外值得注意的是你可以把具有任何文件名或者文件擴展名的文件包含進你的文件中,你甚至可以包含其他站點上的文件。3.3 計數(shù)器讓我們在首頁上加上一個計數(shù)器。這個例子已經(jīng)被講過多次了,但是還是有利于演示怎樣讀寫文件以及創(chuàng)建自己的函數(shù)。counter.inc包含以下代碼:/*|| 一個簡單的計數(shù)器*/function get_hitcount$counter_file/* 將計數(shù)器歸零這樣如果計數(shù)器還未被使用,初始值將是1你當(dāng)然也可以把初始值設(shè)成20000來騙人咯*/$count0;// 如果存放計數(shù)器文件已經(jīng)存在,讀取其中的內(nèi)容if file_exists$counter_file

                  $fpfopen$counter_file,"r";// 我們只取了前20位,希望你的站點不要太受歡迎啊$count0+fgets$fp,20;// 由于函數(shù)fgets返回字符串,我們可以通過加0的方法將其自動轉(zhuǎn)換為整數(shù)fclose$fp;// 對文件操作完畢// 增加一次計數(shù)值$count++;// 將新的計數(shù)值寫入文件$fpfopen$counter_file,"w";fputs$fp,$count;fclose$fp;# 返回計數(shù)值return $count;然后我們更改front.php3文件以顯示這個計數(shù)器:include"include/counter.inc";// 我把計數(shù)值放在文件counter.txt中,讀出并輸出printf "%06d ",get_hitcount"counter.txt";include"include/footer.inc";看看我們的新front.php33.4 反饋表單讓我們再添加一個反饋表單以便你的瀏覽者填寫并e-mail給你。舉例來說我們用一種很簡單的方法實現(xiàn)它,我們只需要兩個頁面:一個為瀏覽者提供輸入表單;一個獲得表單數(shù)據(jù)并處理、mail給你。PHP中獲取表單數(shù)據(jù)是很簡單的。當(dāng)一個表單被發(fā)送后,表單中所包含的各個元素被賦上了相應(yīng)的值,而這樣就可以像引用一般變量一樣使用了。在process_form.php3中,變量mytext就被賦予了輸入的值--非常簡單!同樣的,你可以從列表框、多選框、單選框、按鈕等表單元素中取得變量值。你唯一要做的就是為表單中的每一個元素取名以便將來可以引用。根據(jù)這個方法,我們可以生成一個簡單的包含三個元素的表單:姓名、e-mail地址和留言。當(dāng)瀏覽者發(fā)送表單后,處理該表單的PHP頁面(sendfdbk.php3)讀取數(shù)據(jù),檢查姓名是否為空,最后將數(shù)據(jù)mail給你。表單:form.php3include"include/common.inc";$title

                  "Feedback";include"include/header.inc";

                  Your feedback on my home page

                  include"include/footer.inc";處理表

                  單:sendfdbk.php3include"include/common.inc";$title

                  "Feedback";include"include/header.inc";if $name "" // 現(xiàn)

                  在我很討厭匿名的留言!echo "DuhHow come you are

                  anonymous";elseif "mailto:$MyEmail"$MyEmail"; $MyName "PHP Talk";

                  $MySiteName $MyName."'s Home Page";   

                  新的頁面front.php3:include"include/common.inc"; $title "Welcome";

                  include"include/header.inc";  

                  歡迎來我的寒舍,雖然這里現(xiàn)在暫時還沒有什么。

                  不過我希望馬上就可以多起來。include"include/footer.inc"; 新的cont.php3:include"include/common.inc"; $title "Contact Information";

                  include"include/header.inc";  

                  你可以通過1-800-PHP-INFO聯(lián)系我

                  include"include/footer.inc";

                  現(xiàn)在你就可以猜出這樣安排的好處了。如果你想改動頁面的頭部或者底部,你只需要改動相應(yīng)的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件就行了。另外值得注意的是你可以把具有任何文件名或者文件擴展名的文件包含進你的文件中,你甚至可以包含其他站點上的文件。

                  3.3 計數(shù)器讓我們在首頁上加上一個計數(shù)器。這個例子已經(jīng)被講過多次了,但是還是有利于演示怎樣讀寫文件以及創(chuàng)建自己的函數(shù)。counter.inc包含以下代碼:/*

                  || 一個簡單的計數(shù)器

                  */

                  function get_hitcount$counter_file

                  /* 將計數(shù)器歸零

                  這樣如果計數(shù)器還未被使用,初始值將是1

                  你當(dāng)然也可以把初始值設(shè)成20000來騙人咯

                  */

                  $count0;

                  // 如果存放計數(shù)器文件已經(jīng)存在,讀取其中的內(nèi)容

                  if file_exists$counter_file

                  $fpfopen$counter_file,"r";

                  // 我們只取了前20位,希望你的站點不要太受歡迎啊

                  $count0+fgets$fp,20;

                  // 由于函數(shù)fgets返回字符串,我們可以通過加0的方法將其自

                  動轉(zhuǎn)換為整數(shù)

                  fclose$fp;

                  // 對文件操作完畢

                  // 增加一次計數(shù)值

                  $count++;

                  // 將新的計數(shù)值寫入文件

                  $fpfopen$counter_file,"w"; fputs$fp,$count;

                  fclose$fp;

                  # 返回計數(shù)值

                  return $count;  

                  然后我們更改front.php3文件以顯示這個計數(shù)

                  器:include"include/counter.inc"; // 我把計數(shù)值放在文件counter.txt中,讀出并輸出 printf "%06d ", get_hitcount"counter.txt"; include"include/footer.inc";  

                  看看我們的新front.php3

                  3.4 反饋表單

                  讓我們再添加一個反饋表單以便你的瀏覽者填寫并e-mail給你。舉例來說我們用一種很簡單的方法實現(xiàn)它,我們只需要兩個頁面:一個為瀏覽者提供輸入表單;一個獲得表單數(shù)據(jù)并處理、mail給你。

                  PHP中獲取表單數(shù)據(jù)是很簡單的。當(dāng)一個表單被發(fā)送后,表單中所包含的各個元素被賦上了相應(yīng)的值,而這樣就可以像引用一般變量一樣使用了。

                  在process_form.php3中,變量$mytext就被賦予了輸入的值--非常簡單!同樣的,你可以從列表框、多選框、單選框、按鈕等表單元素中取得變量值。你唯一要做的就是為表單中的每一個元素取名以便將來可以引用。

                  根據(jù)這個方法,我們可以生成一個簡單的包含三個元素的表單:姓名、e-mail地址和留言。當(dāng)瀏覽者發(fā)送表單后,處理該表單的PHP頁面(sendfdbk.php3)讀取數(shù)據(jù),檢查姓名是否為空,最后將數(shù)據(jù)mail給你。

                  表單:form.php3include"include/common.inc";

                  $title "Feedback";

                  include"include/header.inc";  

                  Your feedback on my home pageinclude"include/footer.inc";

                  處理表單:sendfdbk.php3include"include/common.inc";

                  $title "Feedback";

                  include"include/header.inc";

                  if $name ""

                  // 現(xiàn)在我很討厭匿名的留言!

                  echo "DuhHow come you are anonymous";

                  elseif $name "Your name" // 這個瀏覽者真是不想透露姓名啊!

                  echo "HelloYour name is supposed to be replaced with

                  your actual name!";

                  else

                  // 輸出一段禮貌的感謝語

                  echo "

                  Hello, $name

                  Thank you for your feedback. It is greatly appreciated

                  Thanking you

                  $MyName$MyEmailLink

                  ";

                  // 最后mail出去

                  mail$MyEmail, "Feedback."," Name : $name

                  E-mail : $email

                  Comment : $comment

                  ";

                  include"include/footer.inc";

                   

                  3.5 簡單的站內(nèi)搜索引擎

                  PHP可以調(diào)用外部程序。在Unix環(huán)境下我們可以利用程序grep

                  實現(xiàn)一個簡單的搜索引擎。我們可以做的稍微復(fù)雜一些:使用一個頁

                  面既輸出一個表單供用戶輸入搜索字串又輸出查詢結(jié)果。

                  include"include/common.inc"; $title "Search";

                  include"include/header.inc";  

                  FORM action"" METHOD"POST" INPUT value""

                  SIZE"20" LENGTH"30"

                  if ! empty$searchstr

                  // empty用來檢查查詢字串是否為空

                  // 如果不為空,調(diào)用grep查詢

                  echo " ";

                  // 調(diào)用grep對所有文件進行大小寫非敏感模式的查詢 $cmdstr "grep -i $searchstr *"; $fp popen $cmdstr, "r" ; // 執(zhí)行命令并輸出管道 $myresult array; // 存儲查詢結(jié)果

                  while $buffer fgetss $fp, 4096 // grep返回這樣格式: 文件名:匹配字串出現(xiàn)行數(shù)

                  // 因此我們利用函數(shù)split分離處理數(shù)據(jù)

                  list$fname, $fline split":",$buffer, 2;

                  // 我們只輸出第一次匹配的結(jié)果

                  if !defined$myresult[$fname] $myresult[$fname] $fline; // 現(xiàn)在我們將結(jié)果存儲在數(shù)組中,下面就可以處理并輸出了 if count$myresult

                  echo " ";

                  whilelist$fname,$fline each$myresult

                  echo " [*]

                  $fname : $fline ";

                  echo " ";

                  else

                  // 如果沒有查詢結(jié)果

                  echo "Sorry. Search on $searchstr returned no results ";

                  pclose$fp;

                  include"include/footer.inc";  

                  注釋:

                  PHP_SELF是PHP內(nèi)建的變量。包含當(dāng)前文件名。

                  fgets按行讀取文件,最多4096(指定)字符長度。

                  fgetss與fgets相似,只是解析輸出的HTML標記。

                  split有一個參數(shù)是2,因為我們只需要把輸出分成兩部分。另外需要省略:"。

                  each是一個數(shù)組操作函數(shù),用來更方便的遍歷整個數(shù)組。

                  popen、pclose與fopen、fclose的功能很相似,只是增加了管道處理。

                  請注意以上的代碼并不是實現(xiàn)一個搜索引擎的好辦法。這只是有助于我們更好學(xué)習(xí)PHP而舉出的一個例子而已。理想的情況是你應(yīng)該建立一個包含關(guān)鍵字的數(shù)據(jù)庫然后進行搜索

                  


          汽車配件管理軟件(下)洗車管理軟件介紹
          名易MyPCS生產(chǎn)事務(wù)協(xié)調(diào)系統(tǒng)名易MyOA協(xié)同辦公管理軟件
          名易MyIMS貸款管理系統(tǒng)名易MyIDP快速開發(fā)平臺
          名易MyIBP保險業(yè)務(wù)管理系統(tǒng)名易MyHR人力資源管理軟件
          名易MyHMS酒店綜合管理系統(tǒng)名易MyCRM客戶關(guān)系管理軟件
          資產(chǎn)管理軟件用品管理軟件
          車輛管理軟件會議管理軟件
          PHP應(yīng)用中的八種常見文件操作方式PHP入門的學(xué)習(xí)方法
          信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
          • 勁爆價:
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 三级视频网站在线观看 | 91影院成人 | 日韩精品黄 | sm在线 | 20011年高清a免费看一级毛片 | 日本无码在线看 | 日韩无码成人 | 婷婷无码在线 | 色色网站在线观看 | www黄在线观看 |