<ul id="awysq"></ul>
  • <samp id="awysq"><pre id="awysq"></pre></samp>
  • 廣東福建浙江江蘇上海北京山東遼寧江西河南四川湖北湖南廣西安徽黑龍江天津重慶吉林河北貴州甘肅山西云南新疆寧夏海南陜西西藏青海內蒙古

    新聞中心

    從實例開始
    發布時間:2014-10-11 23:22:53
    PHP的許多特點與其他軟件或者工具有關。利用迄今為止我們所學到的PHP知識,我們可以試著建立一個簡單交互的網站。利用這一過程我們又可以學到不少東西。好吧,我們現在開始專注于一個典型個人網站的建設。

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

    標題頁面--front.html


    這里我們有一個非常簡單的html文件:



    我的個人主頁--歡迎




    我的個人主頁



    歡迎





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



    不過我希望馬上就可以多起來。






    Copyright ? 我自己,1999





    聯系信息頁面--count.html

    同樣我們又有了一個簡單頁面:



    我的個人主頁--聯系信息




    我的個人主頁



    聯系信息





    你可以通過1-800-PHP-INFO聯系我






    Copyright ? 我自己,1999






    3.2 HTML到PHP

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

    全站通用變量設定:common.inc
    // 全站通用變量
    $MyEmail = "phptalk@tnc.org";
    $MyEmailLink = "$MyEmail";
    $MyName = "PHP Talk";
    $MySiteName = $MyName."’s Home Page";
    ?>

    通用頁面頭部:header.inc
    // 定義通用頁面頭部
    ?>
















    通用頁面底部:footer.inc
    // 通用頁面底部
    ?>




    Copyright ? by

    , 1999





    新的頁面front.php3:
    include("include/common.inc");
    $title = "Welcome";
    include("include/header.inc");
    ?>


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



    不過我希望馬上就可以多起來。


    include("include/footer.inc");
    ?>

    新的cont.php3:
    include("include/common.inc");
    $title = "Contact Information";
    include("include/header.inc");
    ?>


    你可以通過1-800-PHP-INFO聯系我


    include("include/footer.inc");
    ?>

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

    3.3 計數器

    讓我們在首頁上加上一個計數器。這個例子已經被講過多次了,但是還是有利于演示怎樣讀寫文件以及創建自己的函數。counter.inc包含以下代碼:
    /*
    || 一個簡單的計數器
    */
    function get_hitcount($counter_file)
    {
    /* 將計數器歸零
    這樣如果計數器還未被使用,初始值將是1
    你當然也可以把初始值設成20000來騙人咯
    */
    $count=0;
    // 如果存放計數器文件已經存在,讀取其中的內容
    if ( file_exists($counter_file) )
    {
    $fp=fopen($counter_file,"r");
    // 我們只取了前20位,希望你的站點不要太受歡迎啊
    $count=0+fgets($fp,20);
    // 由于函數fgets()返回字符串,我們可以通過加0的方法將其自動轉換為整數
    fclose($fp);
    // 對文件操作完畢
    }
    // 增加一次計數值
    $count++;
    // 將新的計數值寫入文件
    $fp=fopen($counter_file,"w");
    fputs($fp,$count);
    fclose($fp);
    # 返回計數值
    return ($count);
    }
    ?>
    然后我們更改front.php3文件以顯示這個計數器:
    include("include/counter.inc");
    // 我把計數值放在文件counter.txt中,讀出并輸出
    printf ("%06d
    ",
    get_hitcount("counter.txt"));
    include("include/footer.inc");
    ?>
    看看我們的新front.php3

    3.4 反饋表單

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

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




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

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

    表單:form.php3
    include("include/common.inc");
    $title = "Feedback";
    include("include/header.inc");
    ?>








    Your feedback on my home page.


    include("include/footer.inc");
    ?>

    處理表單:sendfdbk.php3
    include("include/common.inc");
    $title = "Feedback";
    include("include/header.inc");
    if ( $name == "" )
    {
    // 現在我很討厭匿名的留言!
    echo "Duh ? How come you are anonymous?";
    }
    elseif ($name == "Your name")
    {
    // 這個瀏覽者真是不想透露姓名啊!
    echo "Hello ? Your 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 簡單的站內搜索引擎

    PHP可以調用外部程序。在Unix環境下我們可以利用程序grep實現一個簡單的搜索引擎。我們可以做的稍微復雜一些:使用一個頁面既輸出一個表單供用戶輸入搜索字串又輸出查詢結果。
    include("include/common.inc");
    $title = "Search";
    include("include/header.inc");
    ?>


    " METHOD="POST">
    "
    SIZE="20" MAXLENGTH="30">



    if ( ! empty($searchstr) )
    {
    // empty()用來檢查查詢字串是否為空
    // 如果不為空,調用grep查詢
    echo "
    ";
    // 調用grep對所有文件進行大小寫非敏感模式的查詢
    $cmdstr = "grep -i $searchstr *";
    $fp = popen( $cmdstr, "r" ); // 執行命令并輸出管道
    $myresult = array(); // 存儲查詢結果
    while( $buffer = fgetss ($fp, 4096))
    {
    // grep返回這樣格式: 文件名:匹配字串出現行數
    // 因此我們利用函數split()分離處理數據
    list($fname, $fline) = split(":",$buffer, 2);
    // 我們只輸出第一次匹配的結果
    if ( !defined($myresult[$fname]))
    $myresult[$fname] = $fline;
    }
    // 現在我們將結果存儲在數組中,下面就可以處理并輸出了
    if ( count($myresult) )
    {
    echo "
      ";
      while(list($fname,$fline) = each($myresult))
      echo "

    1. $fname : $fline
    2. ";
      echo "
    ";
    }
    else
    {
    // 如果沒有查詢結果
    echo "Sorry. Search on $searchstr
    returned no results.
    ";
    }
    pclose($fp);
    }
    ?>
    include("include/footer.inc");
    ?>


    注釋:

    PHP_SELF是PHP內建的變量。包含當前文件名。
    fgets()按行讀取文件,最多4096(指定)字符長度。
    fgetss()與fgets()相似,只是解析輸出的HTML標記。
    split()有一個參數是2,因為我們只需要把輸出分成兩部分。另外需要省略":"。
    each()是一個數組操作函數,用來更方便的遍歷整個數組。
    popen()、pclose()與fopen()、fclose()的功能很相似,只是增加了管道處理。
    請注意以上的代碼并不是實現一個搜索引擎的好辦法。這只是有助于我們更好學習PHP而舉出的一個例子而已。理想的情況是你應該建立一個包含關鍵字的數據庫然后進行搜索。

    相關說明: 您可以通過電話:020-85421558 與我們聯系,我們會根據您所從事的行業領域和網站類型,在最短的時間內請我們的營銷顧問與您預約后上門拜訪您,直接面談交流為您解答所有的網站建設疑問。
    上一篇:輕松制作網頁:電腦教程       下一篇:其他功能

    提供全國各地網站建設服務

    上海北京深圳廣州天津南京大連杭州沈陽成都東莞濟南佛山無錫長沙武漢寧波長春蘇州青島珠海大慶福州廈門常州鄭州煙臺西安合肥南寧重慶東營昆明威海中山南昌紹興太原惠州溫州徐州揚州淄博鎮江鞍山保定銀川南通洛陽嘉興臺州桂林貴陽蘭州盤錦漳州黃石唐山濰坊湘潭肇慶吉林江門海口株洲泉州泰州包頭柳州德州韶關寶雞金華鹽城新鄉十堰廊坊玉溪濟寧滄州蕪湖湖州梧州泰安安陽遼陽舟山梅州常德三明連云港哈爾濱秦皇島馬鞍山石家莊呼和浩特

     
    備案系統認證 舉報不良網站 我們的支付方式 AAA級信用
    廣州萬戶網絡信息科技有限公司 旗下網站建設品牌:萬戶網 www.gudukezhi.com 版權所有 ©2000-2019 All Rights Reserved
    網站備案編號:粵ICP備15049595號 地址:廣州市番禺區大石街北聯圍仔工業路2號E座305
    電話:020-85421558   傳真:020-88140140   郵編:510515