• 移動設備瀏覽《PHP/MySQL三日通-第三天(二)》請掃描二維碼, 歡迎訪問更多相關內容

    PHP/MySQL三日通-第三天(二)

    發表日期:2016/7/19 16:37:50 瀏覽次數:

    三、 處理常規表達式

      我們稍微講講用ereg()和eregi()兩個函數處理常規表達式。前面我已經提過,這些函數有的很簡單,有的很復雜,看您的實際需要而定。

      使用常規表達式,您可以對一個字符串進行檢查,搜索其中的一些結構模式,判定這些模式是否滿足您的規定。最普遍的用法包括檢查電子郵件地址是否有效(當然,即使這種辦法判定有效,也不能保證郵件地址真的存在)。

      我們在這里不細究常規表達式的復雜細節了,僅僅給出幾個實例。您可以使用上一頁中用過的表格 - 把相應的程序代碼復制過來,添加到下面的代碼段中,就可以看到它是怎樣工作的。

      首先,我們要確保表格中各欄只能輸入字母。下面的常規表達式在用戶輸入一個或多個小寫字母時判定為真,而輸入數字是不允許的:

    if (!ereg("[a-Z]", $first) || !ereg("[a-Z]", $last)) {

    現在我們更進一步,檢查字符串的長度是否是四到六位字符長。用[[:alpha:]]是檢查字符是不是字母的簡單方式。大括號內的數字檢查字符個數。還要說明的是,^ 和 $ 分別代表字符串的開始和結束。

    if (!ereg("^[[:alpha:]]{4,6}$", $first) || !ereg("^[[:alpha:]]{4,6}$", $last)) {

    最后,我們來構造一個常規表達式,來檢驗電子郵件地址的有效性。這種檢驗方式的效果已經引發了相當多的討論。沒有什么東西是十全十美的,不過我下面給出的這段程序還是十分奏效的。

     if (!ereg(^[-!#$%&\*+\\./0-9=?A-Z^_`a-z{|}~]+.

    @.

    [-!#$%&\*+\\/0-9=?A-Z^_`a-z{|}~]+\..

    [-!#$%&\*+\\./0-9=?A-Z^_`a-z{|}~]+$, $last)) {

    別花太多時間來細究這段代碼了,還是先到下一頁內容吧。

    四、 簡便方法

      前面的常規表達式怎么樣?很有意思,是吧?要是在每個需要檢查電子郵件地址的程序里都寫上這么一段程序,那才真叫有意思呢?!想想看吧,得寫那么亂七八糟的一段程序,還得寫上那么多遍!...不過,當然了,還有更簡便的方法。

      還記得前面? 學過的頭文件嗎?它能讓我們寫一段程序,象是這個電子郵件地址的檢查程序,然后把這段程序包含進多個程序里面去。這樣,我們要改寫這段程序時,只須改動一處就行了,不用修改多個文件。

      但是,要做到這一點,我們必須用到函數。

      我們已經用過很多次函數了。每次我們查詢數據庫或檢查字符串長度時,我們都是用函數來做的。這些函數是PHP自帶的。如果您是位熱心的程序員,您可以用自己編寫的函數來擴充PHP本身的功能。但對本教程而言,這部分內容是太過高深了一點。我們要創建的函數不是那一種,而是寫在PHP腳本程序內部的函數。

      函數就是一段程序代碼,我們可以把一個或多個值傳給這段代碼,然后這段代碼會處理我們傳給它的數據并返回一個值。根據實際需要,函數可以很簡單,也可以十分復雜。但是只要我們傳進去一個數,然后能得到一個數,您管它里面有是復雜還是簡單呢!這就是函數的可愛之處。

      PHP里的函數與C語言里的函數表現差不多。當我們定義函數時,必須指明函數需要接收什么樣的數據。一開始好象不太好理解為什么它要接收數據進去,不過這樣可以防止發生一些怪異的問題。函數之所以能做到這一點,是因為函數里面的變量都是私有變量,也就是說,它只在該函數內部存在。例如,您在程序中有一個變量叫$myname,如果您創建了一個函數,想讓這個函數也使用那個$myname變量(值也相同),那是不行的。您可以在函數內部創建一個變量,名字也叫$myname,這兩個變量可以各平相處,而各自取不同的值。不過我可不建議您這么做!您如果真的這么做了,等半年后您再來修改這樣的程序時,您可能就會被弄糊涂了。

      那我們現在就來創建一個函數,先來個簡單的。我們要給它取個名字,指定它要接收什么的變量。在調用這個函數之前,我們還得定義這個函數。

     $#@60;html$#@62;

    $#@60;body$#@62;

    $#@60;?php

    function addnum($first, $second) {

    $newnum = $first + $second;

    return $newnum;

    }

    echo addnum(4,5);

    ?$#@62;

    $#@60;/body$#@62;

    $#@60;/html$#@62;

    這就行了!首先,我們創建了第一個自己的函數。我們定義了兩個新變量,$first和$second,注意它們是怎樣被定義的。在調用這個函數時,要給這兩個變量按它們出現的順序賦好值 - 4賦給$first,5賦給$second。然后我們簡單地把這兩個數加在一起,返回結果!胺祷亍痹谶@里的意思是把結果送回去。在程序最后部分我們把數字9顯示出來。

      我們再來創建一個函數,讓它對我們的數據庫應用有點幫助。一個能妥善處理錯誤的函數怎么樣?試試下面的程序:

     $#@60;html$#@62;

    $#@60;body$#@62;

    $#@60;?php

    function do_error($error) {


    echo "噢,好象有點兒問題...$#@60;br$#@62;";


    echo "系統報告的錯誤是:$error.\n$#@60;br$#@62;";


    echo "最好是暫時關閉網站并通知系統管理員。";

    die;

    }


    if (!$db = @mysql_connect("localhost","user", "password")) {


    $db_error = "無法連接到MySQL數據庫";

    do_error($db_error);
    }

    ?$#@62;

    $#@60;/body$#@62;

    $#@60;/html$#@62;

    本新聞共2頁,當前在第1頁  1  2  


    公司座機:0519-85115799 服務熱線:13357899835 EMAIL:admin@seo-fox.cn
    業務QQ:285700415 公司地址:常州市新北區太湖東路9-2號創意大廈1502
    上海股權托管交易中心 企業代碼:205675
    在我們眼里,一個網站應該是專業的,易于操作的,更重要的是:網站是強大的營銷工具,讓潛在客戶了解你的公司提供的更多產品或服務
    我們只做有價值的網站!
    0
    MAP
    2007-2015 © 常州網狐信息技術有限公司
    在线观看的免费无码黄漫网站_欧美另类freesex潮喷_8050午夜一级A片免费的_欧美成人永久免费A片