乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      PHP新手上路--eXdream blog

       haroo 2005-09-08

      PHP新手上路- -

                                            

      簡介

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

      1.簡介

        PHP是能讓你生成動態(tài)網(wǎng)頁的工具之一。PHP代表:超文本預(yù)處理器(PHP: Hypertext Preprocessor)。PHP是完全免費(fèi)的,不用花錢,你可以從PHP官方站點(diǎn)(http://www.)自由下載。PHP遵守GNU公共許可(GPL),在這一許可下誕生了許多流行的軟件諸如Linux和Emacs。你可以不受限制的獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。PHP在大多數(shù)Unix平臺,GUN/Linux和微軟Windows平臺上均可以運(yùn)行。怎樣在Windows環(huán)境的PC機(jī)器或Unix機(jī)器上安裝PHP的資料可以在PHP官方站點(diǎn)上找到,也可以查閱網(wǎng)頁陶吧的“PHP安裝全攻備”專題文章。安裝過程很簡單。

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

      1.1 歷史

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

        PHP雖然很容易學(xué)習(xí),但是速度上比mod_perl(植入web服務(wù)器的perl模塊)慢?,F(xiàn)在有了可以與mod_perl速度想媲美的被稱作Zend的新引擎,而PHP4就可以充分利用這個引擎?,F(xiàn)在,PHP4正式版已經(jīng)發(fā)布,大家可以到php的官方站點(diǎn)上去下載。Andy Gutmans和Zeev Suraki是Zend的主要作者??梢匀end站點(diǎn)(http://www.)了解更多。

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

      1.2 PHP的先進(jìn)之處

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

      - 學(xué)習(xí)過程

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

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

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

      - 數(shù)據(jù)庫連接

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

      - 可擴(kuò)展性

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

      - 面向?qū)ο缶幊?

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

      - 可伸縮性

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

      - 更多特點(diǎn)

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

      為什么要選擇PHP

      2. 競爭對手:ASP,mod_perl,JSP

        用于實(shí)現(xiàn)交互式動態(tài)網(wǎng)頁的技術(shù)有好多,其中CGI又稱通用網(wǎng)關(guān)接口(Common Gateway Interface),是外部程序和WEB服務(wù)器之間的標(biāo)準(zhǔn)編程接口,但是CGI程序帶來的缺點(diǎn)實(shí)在太多;而Perl很好地解決了CGI中的問題,被用來驅(qū)動復(fù)雜的WEB技術(shù);微軟的ASP(Active Server Pages)的出現(xiàn),以它容易上手、輕松編寫程序和微軟件強(qiáng)有力的支持后盾使得ASP一下子成了許專業(yè)編程人員和非專業(yè)編程人員的寵兒;Middle ware和Allaire的Cold Fusion是另一種解決方法,并且Cold Fusion有一個已證實(shí)可靠的搜索引擎組件;JSP 是Sun公司推出的新一代站點(diǎn)開發(fā)語言等等。有這么多的動態(tài)WEB技術(shù),也許你會問:“為什么我要選擇PHP呢?”  

        在回答這一問題之前,讓我們先來看看ASP,PHP和JSP之間的優(yōu)缺點(diǎn)。  

      2.1 關(guān)于ASP  

        ASP 由于其簡單功能實(shí)用等方面受到廣大朋友的喜歡,再加上MS的強(qiáng)有力支持,可以說是時下作站點(diǎn)最為流行的語言之一,他借助MS的Com+ 技術(shù),幾乎可以實(shí)現(xiàn)在C/S 能夠?qū)崿F(xiàn)的所有功能,可以說確實(shí)具有相當(dāng)?shù)母偁幜?。ASP的代碼實(shí)現(xiàn)也很簡單,MS 提供的InterDev 在RAD 的基礎(chǔ)上,使ASP 的開發(fā)一夜之間火遍了大江南北。但是他的缺點(diǎn)是,由于MS 長久以來的霸道作風(fēng),他只能運(yùn)行在MS的平臺上,因此在關(guān)鍵性的應(yīng)用上使人難以輕易接受。

      2.2 關(guān)于JSP

        JSP 是Sun公司推出的新一代站點(diǎn)開發(fā)語言,他完全解決了目前ASP,PHP的一個通病--腳本級執(zhí)行(現(xiàn)在PHP4 也已經(jīng)在Zend 的支持下,實(shí)現(xiàn)編譯運(yùn)行).Sun 公司借助自己在Java 上的不凡造詣,將Java 從Java 應(yīng)用程序 和 Java Applet 之外,又有新的碩果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。

        據(jù)我所知,JSP基于Java,因此Java程序員可以輕松開始編碼。ASP只是一個一般的引擎,具有支持多種語言的能力,不過默認(rèn)的并且是最常用的還是VBScript。mod_perl與Perl一樣強(qiáng)大,只是更快一些。  

        對于ASP、JSP、PHP等,到底哪種語言更好?不同的人有不同的看法。不過有一點(diǎn)我們必須要明確的:對于ASP、JSP等,你是否清楚購買它們會有多昂貴以及它們需要多么昂貴和強(qiáng)大的硬件。如果你有什么中立的觀點(diǎn)(比如說沒有被SUN和Microsoft的百萬美金所影響),請順便通知我。

      2.3 關(guān)于PHP

        PHP 是秉承Linux 的GNU 風(fēng)格,借助與源碼公開,使他迅速成為世界上目前應(yīng)用最為廣泛的站點(diǎn)制作語言之一。借助與C++的形式,引用類的概念,使得代碼的可重復(fù)性應(yīng)用便的異常簡單。加上他和Linux,Apache 和MySql 的緊密配合,關(guān)鍵性的應(yīng)用也沒有問題(有名的Sina就 是采用Php)。同時,PHP第四代Zend(PHP4)的核心引擎正式版也已經(jīng)發(fā)布了,整個程序的核心得到了大幅度的改進(jìn),讓PHP程序的執(zhí)行速度變得更快。PHP在最佳化之后的效率,已比傳統(tǒng)CGI或者ASP等程序有了更好的表現(xiàn)。而且正因?yàn)镻HP是免費(fèi)的,因此任何人都可以訪問PHP WEB站點(diǎn),下載完整的源代碼。更重要的是:用PHP編寫的代碼執(zhí)行起來會更快,能實(shí)現(xiàn)同樣功能的PHP代碼,不用改變就可以在不同的WEB服務(wù)器上、不同的操作系統(tǒng)下運(yùn)行。就憑這一點(diǎn),你就已經(jīng)有足夠的理由選擇PHP。
      從一個簡單的程序來了解PHP

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

      3.1 首要條件

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

      3.2 PHP的安裝

        有關(guān)PHP的安裝配置,可以查閱網(wǎng)頁陶吧上的“PHP安裝全攻略”專題文章。

      3.3 語法

        從語法上看,PHP語言近似于C語言。可以說,PHP是借鑒C語言的語法特征,由C語言改進(jìn)而來的。我們可以混合編寫PHP代碼和HTML代碼,不僅可以將PHP腳本嵌入到 HTML 文件中,我們甚至還可以把 HTML 標(biāo)簽也嵌入在 PHP 腳本里。以下是你可以采用的幾種方法。你可以選用其中一種你最適合的并且就這樣堅持這種方法!

      從HTML中分離

      以下是可以使用的方法:





        注:當(dāng)你使用“”將PHP代碼嵌入于HTML文件中時,可能會同XML發(fā)生沖突,同時,能否使用這一縮減形式還取決于PHP本身的設(shè)置。為了可適應(yīng)XML和其它編輯器,你可以在開始的問號后面加上“php”使PHP代碼適應(yīng)于XML分析器。如:“”。也可以像寫其它腳本語言那樣使用腳本標(biāo)記,如:“ ”。


      語句

      與Perl和C一樣,在PHP中用“;”來分隔語句。那些從HTML中分離出來的標(biāo)志也表示語句的結(jié)束。

      注釋

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

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

      echo 和 print

        PHP 和 HTML 最簡單的交互是通過 print 和 echo 語句來實(shí)現(xiàn)的,在實(shí)際使用中, print 和 echo 兩者的功能幾乎是完全一樣??梢赃@么說,凡是有一個可以使用的地方,另一個也可以使用。但是,兩者之間也還是一個非常重要的區(qū)別:在 echo 函數(shù)中,可以同時輸出多個字符串,而在 print 函數(shù)中則只可以同時輸出一個字符串。同時,echo函數(shù)并不需要圓括號,所以echo函數(shù)更像是語句而不像是函數(shù)。讓我們來看看下面這一實(shí)例:

      $a="hello";
      $b="world";
      echo "a","b";
      print "a","b";
      ?>

      用瀏覽器觀看這段代碼的運(yùn)行情況后,你會看到這樣的運(yùn)行結(jié)果:
      aba
      Parse error: parse error in d:adminmyphphometest.php3 on line 5
      這說明這段代碼并不能完全通過解釋,發(fā)生錯誤的地方就在代碼的第五行:“print "a","b";”。

      3.4一個簡單的實(shí)例

        通過我們已經(jīng)學(xué)過的知識,你可以編寫一個最簡單的程序輸出一個也許是程序世界中最有名的詞語






      First PHP page




      // Single line C++ style comment
      /*
      printing the message
      */
      echo "Hello World!";
      # Unix style single line comment
      ?>

      PHP入門

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

        PHP支持整數(shù)、浮點(diǎn)數(shù)、字符串、數(shù)組和對象。變量類型通常不由程序員決定而由PHP運(yùn)行過程決定(真是好的解脫?。.?dāng)然,如果你喜歡的話,你也可以使用cast或者函數(shù)settype()將某種類型的變量轉(zhuǎn)換成指定的類型。

      數(shù)值

        數(shù)值類型可以是整數(shù)或是浮點(diǎn)數(shù)。你可以用以下的語句來為一個數(shù)值賦值:
      $a = 1234; # 十進(jìn)制數(shù)
      $a = -123; # 負(fù)數(shù)
      $a = 0123; # 八進(jìn)制數(shù) (等于十進(jìn)制數(shù)的83)
      $a = 0x12; # 十六進(jìn)制數(shù)(等于十進(jìn)制數(shù)的18)
      $a = 1.234; # 浮點(diǎn)數(shù)"雙精度數(shù)"
      $a = 1.2e3; # 雙精度數(shù)的指數(shù)形式

      字符串

        字符串可以由單引號或雙引號引出的字段定義。注意不同的是被單引號引出的字符串是以字面定義的,而雙引號引出的字符串可以被擴(kuò)展。而且,在雙引號字符串中可以使用反斜杠()在字符串中加入轉(zhuǎn)義序列和轉(zhuǎn)換字符。舉例如下:

      $first = ‘Hello‘;
      $second = "World";
      $full1 = "$first $second"; # 產(chǎn)生 Hello World
      $full2 = ‘$first $second‘;# 產(chǎn)生 $first $second
      $full3="01DC studio,." 2000 copyright." " ;

        請注意最后一行,如果需要在字符串中使用雙引號,可以使用反斜杠字符,象該行語句所示。這里的的反斜杠用來使雙引號的功能改變。

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

      數(shù)組與哈希表

        數(shù)組與哈希表以同樣的方法被支持。怎樣運(yùn)用取決于你怎樣定義它們。你可以用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,因?yàn)樵摂?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)

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

      4.2 變量與常量

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

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

        PHP內(nèi)置了許多已定義的變量。你也可以用define函數(shù)定義你自己的常量,比如define("CONSTANT","value")。

      4.3 運(yùn)算符

        PHP具有C,C++和Java中的通常見到的運(yùn)算符。這些運(yùn)算符的優(yōu)先權(quán)也是一致的。賦值同樣使用"="。

      算術(shù)和字符

        以下只有一種運(yùn)算符是有關(guān)字符的:
      $a + $b :加
      $a - $b :減
      $a * $b :乘
      $a / $b :除
      $a % $b :取模(余數(shù))
      $a . $b :字符串連接

      邏輯和比較

      邏輯運(yùn)算符有:
      $a || $b :或
      $a or $b :或
      $a && $b :與
      $a and $b :與
      $a xor $b :異或 (當(dāng)$a或$b為true時為true,兩者一樣時為false)  
      ! $a :非
      比較運(yùn)算符有:
      $a == $b :相等
      $a != $b :不等
      $a < $b :小于
      $a <= $b :小于等于
      $a > $b :大于
      $a >= $b :大于等于
      與C一樣PHP也有三重運(yùn)算符(?:)。位操作符在PHP同樣存在。

      優(yōu)先權(quán)

      就和C以及Java一樣!

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

        PHP有著與C一樣的流程控制。我將在下面大概介紹。

      if, else, elseif, if(): endif

      if (表達(dá)式一)  
      {
      . . .
      }  
      elseif (表達(dá)式二)  
      {
      . . .
      }  
      else  
      {
      . . .
      }
      // 或者像Python一樣
      if (表達(dá)式一) :
      . . .
      . . .
      elseif (表達(dá)式二) :
      . . .
      else :
      . . .
      endif ;

      Loops. while, do..while, for  

      while (表達(dá)式)  
      {
      . . .
      }
      do  
      {
      . . .
      }  
      while (表達(dá)式);
      for (表達(dá)式一; 表達(dá)式二; 表達(dá)式三)  
      {
      . . .
      }
      //或者像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文件分割成多個文件并且在不同需要時分別引用它們。

      4.5 函數(shù)

        你可以像以下的例子一樣定義自己的函數(shù)。函數(shù)的返回值可以是任何數(shù)據(jù)類型:
      function foo (變量名一, 變量名二, . . . , 變量名n)  
      {
      echo "Example function.n";
      return $retval;
      }

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

      4.6 類

        利用類模型建立類??梢詤⒖糚HP手冊中對類的詳細(xì)解釋。
      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_employee(10,"sbabu");
      $sbabu->changenm("babu");
      $sbabu->show();
      建設(shè)一個簡單交互的網(wǎng)站(一)

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

      5.1 計劃一個站點(diǎn)

        一般一個個人站點(diǎn)包括一個歡迎頁面、一個留言本頁面、一個書簽鏈接頁面、一個計數(shù)器、聯(lián)系信息,甚至還有照片集和一些音樂文件等等。  

      5.2 用include和require進(jìn)行模塊化

        我們看一些用PHP構(gòu)架的網(wǎng)站,幾乎網(wǎng)站每一個頁面的PHP文件里都會有include和require嵌入其間。這是因?yàn)槭褂胕nclude和require不但可增強(qiáng)代碼的可讀性,而且可將站點(diǎn)分成模塊來管理。一般來說,對于一個網(wǎng)站上的每個頁面肯定會有重復(fù)的內(nèi)容。例如:頁面頭部的導(dǎo)航條、廣告圖標(biāo)、或邊部導(dǎo)航等??赡苓€在每頁的頁腳即頁面的底部有著作權(quán)或一些基于文本的導(dǎo)航條。如果我們要修改一個包含成千上百個頁面的大網(wǎng)站上的導(dǎo)航條或是徽標(biāo)之類的內(nèi)容,用我們以往的方法,我們只能遂一對每一頁面進(jìn)行更改。不用我說,大家也能想像到這是一件多么艱巨而痛苦的差事。那么,我們到底有沒有更好的解決方法呢?答案是肯定的。我們可以將重復(fù)的內(nèi)容都放到一個文件中,然后在每一個需要這些內(nèi)容的頁面上用PHP的include和require函數(shù)動態(tài)地調(diào)用該文件。這樣,以后如果我們想對所有頁面上的這些復(fù)用內(nèi)容做修改時,就只需要更改包含了這些重復(fù)內(nèi)容的文件。

        為了便于大家理解,讓我們先來看看include和require的一個簡單應(yīng)用:

      HTML的頁面開始,也許你會在站點(diǎn)的每頁的頭部包含它(head.htm)。
      <HTML>
      <HEAD>
      <TITLE> 我的個人主頁 </TITLE>
      </HEAD>
      <BODY>  

      頁面內(nèi)容(content.htm)。  
      <H1>
      歡迎來我的寒舍,雖然這里現(xiàn)在暫時還沒有什么。  
      </H1>  

      HTML的頁面的結(jié)束(trail.htm)
      </BODY>
      </HTML>

      用include和require函數(shù)把HTML從PHP中分離出來,將HTML和PHP分成模塊:  
      <?
      /*
      調(diào)用HTML頁面的頭部
      */
      require("head.htm");
      /*
      調(diào)用HTML頁面的內(nèi)容
      */
      require("centent.htm");
      /*
      調(diào)用HTML頁面的尾部
      */
      require("trail.htm");
      ?>

      5.3 讓我們從一個標(biāo)題頁面、一個聯(lián)系信息頁面和一個簡歷頁面開始。我們同樣需要標(biāo)準(zhǔn)的、通用的頁面頭部和底部。  

      標(biāo)題頁面--front.htm  
      這里我們有一個非常簡單的html文件:
      <HTML>
      <HEAD>
      <TITLE>
      我的個人主頁--歡迎
      </TITLE>
      </HEAD>
      <BODY>
      <H1>
      我的個人主頁
      </H1>
      <H2>
      歡迎
      </H2>
      <HR>
      <P>
      歡迎來我的寒舍,雖然這里現(xiàn)在暫時還沒有什么。
      </P>
      <P>
      不過我希望馬上就可以多起來。
      </P>
      <HR>
      <P ALIGN="CENTER">
      <SMALL> <I>
      Copyright ? 我自己,1999
      </I> </SMALL>
      </P>
      </BODY>
      </HTML>

      聯(lián)系信息頁面--count.htm
      同樣我們又有了一個簡單頁面:
      <HTML>
      <HEAD>
      <TITLE>
      我的個人主頁--聯(lián)系信息
      </TITLE>
      </HEAD>
      <BODY>
      <H1>
      我的個人主頁
      </H1>
      <H2>
      聯(lián)系信息
      </H2>
      <HR>
      <P>
      你可以通過1-800-PHP-INFO聯(lián)系我
      </P>
      <HR>
      <P ALIGN="CENTER">
      <SMALL> <I>
      Copyright ? 我自己,1999
      </I> </SMALL>
      </P>
      </BODY>
      </HTML>


      5.4 從HTML到PHP

        從上面你可以看出,每個頁面有相同的頭部和底部。像上面那樣每個頁面都寫入相同的信息在工作量少的時候還可以,但是想象一下當(dāng)有100多頁面且你需要全部更改其頭部或底部時你要花費(fèi)多大精力?一頁一頁的手工更改是一件多么冗長無趣的事情??!所以我們應(yīng)該為這些頁面編寫PHP的頭部和底部文件,之后我們只要在每個HTML頁面中引用它們就行了。在include和require函數(shù)中都包含一個PHP代碼的文件,不管該文件的擴(kuò)展名是什么,它都被當(dāng)作是PHP文件。我們將把這些include文件放在一個叫include的子目錄下,并取成以.inc為后綴的文件。下面我們就把這些站點(diǎn)的通用內(nèi)容寫進(jìn)文件中。

      全站通用變量設(shè)定:common.inc
      <?
      // 全站通用變量
      $MyEmail = "phptalk@tnc.org";
      $MyEmailLink = "<a href="mailto:$MyEmail">$MyEmail</a>";
      $MyName = "PHP Talk";
      $MySiteName = $MyName."‘s Home Page";
      ?>

      通用頁面頭部:header.inc
      <?
      // 定義通用頁面頭部
      ?>
      <HTML>
      <HEAD>
      <TITLE>
      <? echo "$MySiteName - $title"; ?>
      </TITLE>
      </HEAD>
      <BODY>
      <H1>
      <? echo "$MySiteName"; ?>
      </H1>
      <H2>
      <? echo "$title"; ?>
      </H2>
      <HR>

      通用頁面底部:footer.inc
      <?
      // 通用頁面底部
      ?>
      <HR>
      <P ALIGN="CENTER">
      <SMALL> <I>
      Copyright ? by  
      <? echo "$MyName ($MyEmailLink)"; ?>
      , 1999
      </I> </SMALL>
      </P>
      </BODY>
      </HTML>

      新的頁面front.php3:
      <?
      include("include/common.inc");
      $title = "Welcome";
      include("include/header.inc");
      ?>
      <P>
      歡迎來我的寒舍,雖然這里現(xiàn)在暫時還沒有什么。
      </P>
      <P>
      不過我希望馬上就可以多起來。
      </P>
      <?
      include("include/footer.inc");
      ?>

      新的count.php3:
      <?
      include("include/common.inc");
      $title = "Contact Information";
      include("include/header.inc");
      ?>
      <P>
      你可以通過1-800-PHP-INFO聯(lián)系我
      </P>
      <?
      include("include/footer.inc");
      ?>

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

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多