鍍金池/ 教程/ PHP/ Web Concepts
函數(shù)
編碼標(biāo)準(zhǔn)
Apache 配置 PHP
Cookies
PHP 函數(shù) preg_replace()
AJAX
PHP 靜態(tài)變量
PHP 函數(shù) preg_grep()
PHP 函數(shù) eregi_replace()
錯(cuò)誤調(diào)試
循環(huán)類型
PHP Array 函數(shù)
PHP 環(huán)境設(shè)置
語(yǔ)法概述
PHP 函數(shù) preg_quote()
在 Windows 用 Apache 安裝 PHP
使用 PHP 備份 MySQL 數(shù)據(jù)庫(kù)
PHP 局部變量
PHP.INI 文件配置
PHP Error 和 Logging 函數(shù)
在 Linux/UNIX 系統(tǒng)上面安裝 PHP
PHP 與 C 語(yǔ)言對(duì)比
數(shù)組
錯(cuò)誤處理
用 IIS 在 Windows 上安裝 PHP
插入數(shù)據(jù)到 MySQL 數(shù)據(jù)庫(kù)
PHP 函數(shù) preg_match()
從 MySQL 數(shù)據(jù)庫(kù)刪除數(shù)據(jù)
預(yù)定義變量
類/對(duì)象函數(shù)庫(kù)
在 Mac OS X 安裝 PHP
字符串
Web Concepts
PHP 介紹
文件包含
通過(guò) PHP 使用分頁(yè)
文件 I/O
PHP 函數(shù)參數(shù)
PHP 字符函數(shù)
GET 和 POST 方法
運(yùn)算符類型
正則表達(dá)式
郵件發(fā)送
MySQL數(shù)據(jù)庫(kù)連接
PHP 函數(shù) preg_split()
使用 PHP 刪除 MySQL 數(shù)據(jù)庫(kù)
MySQL
PHP Directory 函數(shù)
PHP 函數(shù)參考
PHP 函數(shù) eregi()
面向?qū)ο?/span>
PHP 函數(shù) ereg()
結(jié)構(gòu)控制
XML
PHP 函數(shù) sql_regcase()
PHP 全局變量
用 PHP 創(chuàng)建 MySQL 數(shù)據(jù)庫(kù)
PHP 與 Perl 語(yǔ)言對(duì)比
PHP 函數(shù) preg_match_all()
PHP 函數(shù) split()
日期和時(shí)間
PHP 函數(shù) spliti()
PHP 函數(shù) ereg_replace()
常量
文件上傳
更新數(shù)據(jù)到 MySQL 數(shù)據(jù)庫(kù)中
PHP Date / Time 函數(shù)
繪話技術(shù)
使用 PHP 從數(shù)據(jù)庫(kù)取數(shù)據(jù)
變量類型
PHP Calendar 函數(shù)

Web Concepts

本節(jié)演示了根據(jù)瀏覽器類型如何使用PHP可以提供動(dòng)態(tài)頁(yè)面內(nèi)容,像隨機(jī)生成的數(shù)字或用戶輸入。它還展示了客戶端瀏覽器是怎么可以被重定向的。

識(shí)別瀏覽器&平臺(tái)

PHP 創(chuàng)建一些有用的環(huán)境變量,它們可以在用于設(shè)置 php 環(huán)境的 phpinfo.php 頁(yè)面中看到 PHP 配置。

被 PHP 設(shè)置環(huán)境變量集中一個(gè)變量 HTTP_USER_AGENT 是用來(lái)標(biāo)識(shí)用戶的瀏覽器和操作系統(tǒng)。

PHP 提供了 getenv() 函數(shù)來(lái)訪問(wèn)所有的環(huán)境變量的值。

HTTP_USER_AGENT 環(huán)境變量中包含的信息適合于瀏覽器,可用于創(chuàng)建動(dòng)態(tài)內(nèi)容。

下面的例子演示了如何識(shí)別客戶瀏覽器和操作系統(tǒng)。

注意:函數(shù) preg_match() 是在 PHP 正則表達(dá)式匹配函數(shù)

    <html>
    <body>
    <?php
       $viewer = getenv( "HTTP_USER_AGENT" );
       $browser = "An unidentified browser";
       if( preg_match( "/MSIE/i", "$viewer" ) )
       {
          $browser = "Internet Explorer";
       }
       else if(  preg_match( "/Netscape/i", "$viewer" ) )
       {
          $browser = "Netscape";
       }
       else if(  preg_match( "/Mozilla/i", "$viewer" ) )
       {
          $browser = "Mozilla";
       }
       $platform = "An unidentified OS!";
       if( preg_match( "/Windows/i", "$viewer" ) )
       {
          $platform = "Windows!";
       }
       else if ( preg_match( "/Linux/i", "$viewer" ) )
       {
          $platform = "Linux!";
       }
       echo("You are using $browser on $platform");
    ?>
    </body>
    </html>

這是在我的機(jī)器上產(chǎn)生后的結(jié)果??赡茉诓煌碾娔X依據(jù)所運(yùn)行的環(huán)境會(huì)產(chǎn)生不同的結(jié)果。

    You are using Mozilla! on Windows!

隨機(jī)顯示圖像

PHP rand() 函數(shù)用于生成一個(gè)隨機(jī)數(shù)。這個(gè)函數(shù)可以會(huì)隨機(jī)地在一個(gè)給定的范圍內(nèi)生成數(shù)字。隨機(jī)數(shù)生成器打亂數(shù)字生成的規(guī)律。通過(guò)使用srand()函數(shù),給它特定的種子數(shù)值作為它的參數(shù)。

以下示例演示了如何每次顯示四個(gè)不同的圖像的圖片:

    <html>
    <body>
    <?php
      srand( microtime() * 1000000 );
      $num = rand( 1, 4 );

      switch( $num ) 
      {
      case 1: $image_file = "/home/images/alfa.jpg";
              break;
      case 2: $image_file = "/home/images/ferrari.jpg";
              break;
      case 3: $image_file = "/home/images/jaguar.jpg";
              break;
      case 4: $image_file = "/home/images/porsche.jpg";
              break;
      }
      echo "Random Image : <img src=$image_file />";
    ?>
    </body>
    </html>

使用 HTML 表單

最重要的事情是需要注意在處理 HTML 表單和 PHP 頁(yè)面時(shí),任何形式的表單元素都會(huì)提交到您的 PHP 腳本。試試下面的例子將在源代碼 test.php 腳本運(yùn)行。

    <?php
      if( $_POST["name"] || $_POST["age"] )
      {
         echo "Welcome ". $_POST['name']. "<br />";
         echo "You are ". $_POST['age']. " years old.";
         exit();
      }
    ?>
    <html>
    <body>
      <form action="<?php $_PHP_SELF ?>" method="POST">
      Name: <input type="text" name="name" />
      Age: <input type="text" name="age" />
      <input type="submit" />
      </form>
    </body>
    </html>
  • PHP 他默認(rèn)變量 $ _PHP_SELF 用于輸出 PHP 腳本名稱,當(dāng)你點(diǎn)擊“提交”按鈕時(shí)然后,PHP 腳本將被調(diào)用,將會(huì)產(chǎn)生以下結(jié)果:
  • method=“POST” 用于用戶發(fā)送數(shù)據(jù)到服務(wù)器腳本。在 PHP 中有兩個(gè)方法可以上傳數(shù)據(jù)到服務(wù)器腳本,GET 和 POST 將在以后的章節(jié)討論。

瀏覽器重定向

PHPheader()函數(shù)提供原始 HTTP headers 到瀏覽器,可用于重定向到另一個(gè)位置。重定向腳本應(yīng)該在頁(yè)面的頂端,以防止加載頁(yè)面的其他部分。

Location:用來(lái)指定目標(biāo)位置:header()函數(shù)使用 url 作為參數(shù)。在調(diào)用該函數(shù)之后使用exit() 函數(shù)可以阻止其他代碼的解析

下面的例子演示了如何將瀏覽器請(qǐng)求重定向到另一個(gè) web 頁(yè)面。試試這個(gè)例子 test.php 源代碼的腳本。

    <?php
      if( $_POST["location"] )
      {
         $location = $_POST["location"];
         header( "Location:$location" );
         exit();
      }
    ?>
    <html>
    <body>
       <p>Choose a site to visit :</p>
       <form action="<?php $_PHP_SELF ?>" method="POST">
       <select name="location">
          <option value="http://w3c.org">
                World Wise Web Consortium
          </option>
          <option value="http://www.google.com">
                Google Search Page
          </option>
       </select>
       <input type="submit" />
       </form>
    </body>
    </html>

顯示“文件下載”對(duì)話框

某個(gè)時(shí)候顯示“文件下載”對(duì)話框是想要的功能,你想給使用選項(xiàng)當(dāng)用戶點(diǎn)擊一個(gè)鏈接,它就會(huì)彈出一個(gè)“文件下載”顯示框給用戶而不是顯示實(shí)際內(nèi)容。通過(guò) HTTP 頭協(xié)議這是非常容易的。

HTTP 頭協(xié)議將不同于實(shí)際的協(xié)議,我們發(fā)送的 Content-Typetext/htmlnn。在這種情況下,將application/octet-stream和實(shí)際文件名稱將連接到一起。

例如,如果你想要從一個(gè)給定的文件名文件下載鏈接,那么它的語(yǔ)法將如下。

    #!/usr/bin/perl
    # HTTP Header
    print "Content-Type:application/octet-stream; name=\"FileName\"\r\n";
    print "Content-Disposition: attachment; filename=\"FileName\"\r\n\n";

    # Actual File Content
    open( FILE, "<FileName" );
    while(read(FILE, $buffer, 100) )
    {
       print("$buffer");
    }