国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP 表單 - 驗(yàn)證郵件和URL

說(shuō)到驗(yàn)證我們就要知道正規(guī)表示式:

正規(guī)表示式

##正規(guī)表示式是一種描述一段文字規(guī)則的方法,它不是精確的匹配,而是透過(guò)一些特定的符號(hào)來(lái)模糊匹配

?

在PHP中,我們使用preg_match函數(shù)來(lái)執(zhí)行正規(guī)表示式的匹配,一個(gè)參數(shù)是我們的正規(guī)表示式規(guī)則,第二個(gè)參數(shù)是需要檢查的文字

?preg_match ( string $正規(guī), string $字符字串[, array &$結(jié)果] )

功能:根據(jù)$正規(guī)變量,符合$字串變數(shù)。如果存在則回傳符合的個(gè)數(shù),把符合的結(jié)果放到$結(jié)果變數(shù)裡。如果沒(méi)有符合到結(jié)果回傳0。

^表示開(kāi)始;$表示結(jié)束

讓我們看一下程式碼:

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 $str = 'date20150121';
 if (preg_match('/^date/', $str)) {
     echo '匹配成功';
 } else {
     echo '匹配失敗';
 }
 ?>

上面的程式碼就是要符合以date 開(kāi)始的編號(hào)。配對(duì)結(jié)果如下:

符合成功



#preg_matchede第三個(gè)參數(shù)是符合的內(nèi)容,通常我們會(huì)將一個(gè)空的數(shù)組傳遞進(jìn)去,因?yàn)槭莻髦氛{(diào)用,匹配結(jié)束後,數(shù)組中會(huì)得到具體匹配的內(nèi)容

實(shí)例

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 $str = 'date20150121';
 if (preg_match('/^date/', $str,$mat)) {
     print_r($mat);
 } else {
     echo '匹配失敗';
 }
 ?>

程式運(yùn)行結(jié)果:

Array ( ? ?[0] => date )


在正規(guī)表示式中字母使用\w、而數(shù)字使用\d(\D表示非數(shù)字)來(lái)表示

? ?

+ 表示一個(gè)或多個(gè)

? ?

* 表示0個(gè)或多個(gè)

?

? ? 表示有或沒(méi)有

? ?

{n} 表示具體幾位元

? ?

{m, n} 表示大於m個(gè),小於n個(gè)

就像下面這樣:

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 $name = "zhang"; // wang zhu hu ma tan
 
 if (preg_match('/an|hu/', $name, $arr)) {
     print_r($arr);
 } else {
     echo '匹配失敗';
 }
 ?>

程式運(yùn)行結(jié)果:

Array ( ? ?[0] => an )


使用或條件可以用來(lái)匹配字串,如果僅僅是單個(gè)的字母或字符,則可以使用範(fàn)圍表示

使用[]可以表示一個(gè)字元的取值範(fàn)圍

'/[a0\.]/' 可以符合包含了a或0或.的任意字串

另外,正規(guī)表示式還可以使用-來(lái)表示一組範(fàn)圍

? ?[a-z] 表示小寫(xiě)的26個(gè)字母中的任一

? ?[A-Z] 表示小寫(xiě)的26個(gè)字母中的任一

? ?[A-Z] 表示一個(gè)大寫(xiě)字母

#? ?[0-9 ] 表示一位十進(jìn)制數(shù)

了解了這麼多,讓我們看看用正規(guī)表示式來(lái)匹配表單的內(nèi)容。

PHP - 驗(yàn)證名稱(chēng)

####

以下程式碼將透過(guò)簡(jiǎn)單的方式來(lái)偵測(cè)name 欄位是否包含字母和空格,如果name 欄位值不合法,將輸出錯(cuò)誤訊息:

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z]*$/",$name)) {
??? $nameErr = "只允許字母與空格";
}


PHP - 驗(yàn)證郵件

?規(guī)則:郵件名稱(chēng)可以是字母、數(shù)字、底線和點(diǎn)組成的任一字元;郵件信箱要包含@符號(hào),後面的文字會(huì)依照網(wǎng)域名稱(chēng)規(guī)則處理

?以下程式碼將透過(guò)簡(jiǎn)單的方式來(lái)偵測(cè)e-mail 位址是否合法。如果e-mail 位址不合法,將輸出錯(cuò)誤訊息:

$email = test_input($_POST["email"]);
if (!preg_match("/^ [a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) {
??? $emailErr = "無(wú)效的email 格式!";
}


PHP - 驗(yàn)證URL

#以下程式碼將偵測(cè)URL位址是否合法(以下正規(guī)表示式運(yùn)行URL中含有破折號(hào):"-"), 如果URL 位址不合法,將輸出錯(cuò)誤訊息:

$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0- 9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%
=~_|]/i",$website)) {
??? $websiteErr = "無(wú)效的URL";
}

#我們現(xiàn)在將上面所學(xué)的知識(shí)結(jié)合起來(lái),來(lái)驗(yàn)證我們表單的資料。

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文網(wǎng)</title>
 </head>
 
 <style>
     .error {color: #FF0000;}
 </style>
 <body>
 <?php
 // 定義變量并設(shè)置為空值
 $nameErr = $emailErr = $genderErr = $websiteErr = "";
 $name = $email = $gender = $comment = $website = "";
 
 if ($_SERVER["REQUEST_METHOD"] == "POST") {
     if (empty($_POST["name"])) {
         $nameErr = "姓名是必填的";
     } else {
         $name = test_input($_POST["name"]);
         // 檢查姓名是否包含字母和空白字符
         if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
             $nameErr = "只允許字母和空格";
         }
     }
 
     if (empty($_POST["email"])) {
         $emailErr = "電郵是必填的";
     } else {
         $email = test_input($_POST["email"]);
         // 檢查電子郵件地址語(yǔ)法是否有效
         if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) {
             $emailErr = "無(wú)效的 email 格式";
         }
     }
 
     if (empty($_POST["website"])) {
         $website = "";
     } else {
         $website = test_input($_POST["website"]);
         // 檢查 URL 地址語(yǔ)法是否有效(正則表達(dá)式也允許 URL 中的斜杠)
         if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
             $websiteErr = "無(wú)效的 URL";
         }
     }
 
     if (empty($_POST["comment"])) {
         $comment = "";
     } else {
         $comment = test_input($_POST["comment"]);
     }
 
     if (empty($_POST["gender"])) {
         $genderErr = "性別是必選的";
     } else {
         $gender = test_input($_POST["gender"]);
     }
 }
 
 function test_input($data) {
     $data = trim($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
 }
 ?>
 
 <h2>PHP 驗(yàn)證實(shí)例</h2>
 <p><span class="error">* 必需的字段</span></p>
 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
     姓名:<input type="text" name="name">
     <span class="error">* <?php echo $nameErr;?></span>
     <br><br>
     郵箱:<input type="text" name="email">
     <span class="error">* <?php echo $emailErr;?></span>
     <br><br>
     網(wǎng)址:<input type="text" name="website">
     <span class="error"><?php echo $websiteErr;?></span>
     <br><br>
     評(píng)論:<textarea name="comment" rows="5" cols="40"></textarea>
     <br><br>
     性別:
     <input type="radio" name="gender" value="female">女性
     <input type="radio" name="gender" value="male">男性
     <span class="error">* <?php echo $genderErr;?></span>
     <br><br>
     <input type="submit" name="submit" value="提交">
 </form>
 
 <?php
 echo "<h2>您的輸入:</h2>";
 echo $name;
 echo "<br>";
 echo $email;
 echo "<br>";
 echo $website;
 echo "<br>";
 echo $comment;
 echo "<br>";
 echo $gender;
 ?>
 
 </body>
 </html>

我們現(xiàn)在如果不依照上面我們所寫(xiě)的規(guī)則填入的話(huà),會(huì)出現(xiàn)下面的提示:

0.png

如果你輸入的資訊都正確,則會(huì)透過(guò)驗(yàn)證

還能用正規(guī)表示式來(lái)搭配手機(jī)號(hào)碼哦,想想手機(jī)號(hào)碼的規(guī)律吧。


繼續(xù)學(xué)習(xí)
||
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文網(wǎng)</title> </head> <style> .error {color: #FF0000;} </style> <body> <?php // 定義變量并設(shè)置為空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "姓名是必填的"; } else { $name = test_input($_POST["name"]); // 檢查姓名是否包含字母和空白字符 if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "只允許字母和空格"; } } if (empty($_POST["email"])) { $emailErr = "電郵是必填的"; } else { $email = test_input($_POST["email"]); // 檢查電子郵件地址語(yǔ)法是否有效 if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) { $emailErr = "無(wú)效的 email 格式"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // 檢查 URL 地址語(yǔ)法是否有效(正則表達(dá)式也允許 URL 中的斜杠) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "無(wú)效的 URL"; } } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "性別是必選的"; } else { $gender = test_input($_POST["gender"]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <h2>PHP 驗(yàn)證實(shí)例</h2> <p><span class="error">* 必需的字段</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 姓名:<input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span> <br><br> 郵箱:<input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span> <br><br> 網(wǎng)址:<input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> 評(píng)論:<textarea name="comment" rows="5" cols="40"></textarea> <br><br> 性別: <input type="radio" name="gender" value="female">女性 <input type="radio" name="gender" value="male">男性 <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="提交"> </form> <?php echo "<h2>您的輸入:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?> </body> </html>
提交重置程式碼