免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
軟件首頁 |  文章首頁
最新更新 軟件分類 設為首頁 加入收藏 聯系我們
當前位置:首頁文章首頁 IT學院 PHP

PHP編程與應用

作者:東坡下載  來源:uzzf  發布時間:2010-10-14 10:44:41  點擊:

第一章 php3簡介

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的功能被移植到PHP3中,并且成為了PHP3的基本雛形。
  到1998年年中時,已經有大量的商業化產品,例如 C2的 StrongHold web server和RedHat linux捆綁了PHP/FI解析器或PHP3解析器,根據NetCraft估計的保守數據,PHP已經被世界上150,000個站點所采用。通過進一步分析,我們知道其使用數量遠比使用Netscape公司旗艦產品--企業級WEB服務器的站點多。 PHP3大量采用了C, java和Perl語言的語法,并加入了各種PHP自己的特征。它與Javascript等語言的一個區別就是PHP3是在服務器執行,客戶機所看到的是其在服務器上運行的結果,這意味著您若想采用PHP3 scrpit,必須得有 WEB SERVER 支持。
  PHP3支持HTTP的身份認證、cookie、GIF圖象創建,它的一個最有代表性的特點是它的數據庫層,它使得編寫基于數據庫的網頁變得非常簡單。下列出了目前所支持的數據庫:
Oracle ,Sybase , mSQL ,MySQL ,Informix ,Solid dBase ,ODBC, Unix dbm, PostgreSQL ,Adabas D,FilePRo Velocis。

PHP3也支持與采用POP3、HTTP、SNMP、NNTP、IMAP等協議的服務進行網絡編程。
PHP3的程序模式

  有三種方法從HTML進入"PHP程序模式":
  第一種方法:
  

如:

  第二種方法:  

如:


  第一種方法: 

如:

  第二章 變 量

PHP3支持下面類型的變量:

(一)、內部變量

  主要有整數(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 變量作用域

  變量的作用域就是它的有效范圍。對于大多數PHP的變量只有一個作用域。在用戶自定義函數里采用局部變量作用域。函數內使用的變量被缺省設置為局部變量。例如:

     $a=1; /* global scope */
     Function Test() {
       echo $a; /* reference to local scope variable */
             }
     Test();


這段程序不會輸出任何的東西,因為echo語句要輸出局部變量 $a ,而函數內的 $a 從未被賦過值。你可能注意到這和C語言有點小小的區別,C中全局變量可以直接在函數內引用,除非它被一個局部變量所覆蓋。而這使得人們可能不注意修改了全局變量的值。在PHP中要在函數內部使用全局變量必須顯式的說明。例如:

       $a=1;
       $b=2;
       Function Sum() {
         global $a,$b;
         $b = $a + $b;
              }
       Sum();
       echo $b;


上面程序將輸出"3"。通過在函數內部聲明$a和$b是全局變量,所要變量都參考全局。一個函數可以操縱的全局變量的數量沒有限制。
  作用域的另外一個值得注意的地方是static 變量。一個 static變量存在于局部函數中,但當程序離開這個函數時它的值不會丟失。考慮下面的例子:

     Function Test() {
       $a=0;
       echo $a;
       $a++;
       }


這個函數是沒用的,因為每次調用時它都先把$a賦為 0 然后打出"0"。 對$a++的自加沒有任何效果因為函數調用結束后變量$a 就被釋放了。要使記數程序有效記數而不丟掉當前的記數結果,$a 要聲名為static變量:

      Function Test() {
        static $a=0;
        echo $a;
        $a++;
      }


現在,每次調用Test()函數它都會打出$a的值并把增加它的值。

  當使用遞歸函數時靜態變量是必不可少的。遞歸函數就是調用自己的函數。寫遞歸函數時一定要十分小心,因為它的循環次數不確定。你必須確保有足夠的條件結束遞歸過程。下面是一個簡單的遞歸函數記數到10:

      Function Test() {
       static $count=0;
       $count++;
       echo $count;
       if($count < 10) {
         Test();
         }
        }

(二) 動態變量

  有時使用可變的變量名比較方便。就是說,一個能夠被動態賦值和使用的變量名。一個普通變量的賦值語句如:

    $a = "hello";

  一個動態變量引用該變量的值作為一個新變量的名字。在上面例中, hello,可以通過雙$用做變量名。例:

    $$a = "world";

至此,兩個變量被定義并存貯在PHP符號樹中: $a 的內容是"hello",$hello 的內容是 "world"。 因此,語句: echo "$a ${$a}"; 的顯示結果完全等同于: echo "$a $hello";

(三)PHP外部變量

1、HTML表單(GET和POST)

  當一個表單提交給PHP3 script時,PHP會自動得到表單中的變量。例如:  
      Name:

      
當按下"submit"后,PHP3會自動產生變量:$name,其中包含了用戶輸入的所有內容。

2、IMAGE SUBMIT 變量名

  當提交一個表單時,可以通過下面標記用一副圖代替標準的提交按鈕:

當用戶點擊該圖時,兩個附加變量sub_x和sub_y就會伴隨表單一起送到server上。其中包含了用戶在圖上點擊處的坐標。有經驗的人可能注意到瀏覽器實際送出的名字包含一個句號而不是下劃線,但PHP自動將句號轉換成了下劃線。

3、HTTP Cookies

  PHP支持HTTP cookies。Cookies在客戶端瀏覽器存儲數據,以此和用戶保持聯絡或驗證用戶身份。你可以使用setcookie() 函數來設置cookies。 Cookies是HTTP請求頭的一部分,所以必須在任何輸出數據返回給用戶瀏覽器前調用SetCookie()函數。它類似于 Header() 函數的限制。任何用戶端返回的cookies都將被自動轉換為標準的PHP變量,就象GET和POST方法的數據。

  如果要在一個 cookie中設置多個值,要給這個cookie的名字加上 [] ,例如:

    SetCookie("MyCookie[]","Testing", time()+3600);

  注意:新的cookie將覆蓋掉你的瀏覽器中已有的同名cookie,除非它們具有不同的路徑或域。

Tags:

php編程應用
首頁 上一頁 [1] [2] [3] [4]  下一頁 尾頁

文章評論

關于本站 | 網站幫助 | 廣告合作 | 下載聲明 | 友情連接 | 網站地圖
Copyright © 20098-2010 uzzf下載站. All Rights Reserved .
免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
主站蜘蛛池模板: a色网站| 16女性下面扒开无遮挡免费| 91香蕉国产线观看免| 韩日黄色片| 日本特黄特色aa大片免费| 最近中文字幕高清中文字幕电影二| 久草免费看| 蜜桃视频在线观看官网| 美女教师一级毛片| 1819sextub欧美中国| 国产精品亚洲专区一区| 日韩精品一区二区三区在线观看l| 亚洲风情亚aⅴ在线发布| 久久水蜜桃亚洲AV无码精品| 精品偷自拍另类在线观看| 中文字幕a∨在线乱码免费看| 欧美在线视频网| 亚洲精品国产福利片| 欧美巨大精品videos| 久久精品亚洲| 亚洲免费色视频| 无限看片在线版免费视频大全| 日日摸日日碰夜夜爽亚洲| 99久久免费精品国产72精品九九 | 欧美线在线精品观看视频| 亚洲欧美日韩另类| 古装一级淫片a免费播放口| 永久黄网站色视频免费观看 | 国产经典一区| 最近最新中文字幕免费的一页| 国产在线视频一区| 免费a级片在线观看| 久久精品亚洲| 一级成人生活片免费看| 亚洲经典在线| a级成人毛片久久| 久久综合伊人77777| 国产亚洲精品第一综合| 亚洲中久无码永久在线观看同| 1000部夫妻午夜免费| 人妖在线|