PHP 양식 - 확인 이메일 및 URL

검증할 때 정규식을 알아야 합니다:

정규식

정규식은 텍스트 규칙을 설명하는 방법입니다. 정확한 일치는 아니지만 특정 기호를 통한 퍼지 일치입니다.

PHP에서는 preg_match 함수를 사용합니다. 정규식 일치를 수행합니다. 하나의 매개변수는 정규식 규칙이고 두 번째 매개변수는 확인할 텍스트입니다.

preg_match ( string $regular, string $character string[, array &$result] )

기능: $regular 변수를 기준으로 $string 변수를 일치시킵니다. 존재하는 경우 일치 항목 수를 반환하고 일치된 결과를 $result 변수에 넣습니다. 결과가 없으면 0이 반환됩니다.

^은 시작을 의미하고 $는 종료를 의미합니다

코드를 살펴보겠습니다.

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 $str = 'date20150121';
 if (preg_match('/^date/', $str)) {
     echo '匹配成功';
 } else {
     echo '匹配失败';
 }
 ?>

위 코드는 날짜로 시작하는 숫자와 일치합니다. 매칭 결과는 다음과 같습니다.

매칭 성공


preg_matchede의 세 번째 매개변수 일치하는 콘텐츠인 경우 일반적으로 주소별 호출이기 때문에 빈 배열을 전달합니다. 일치가 완료된 후 특정 일치 콘텐츠

인스턴스

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 $str = 'date20150121';
 if (preg_match('/^date/', $str,$mat)) {
     print_r($mat);
 } else {
     echo '匹配失败';
 }
 ?>

배열에서 가져옵니다. 프로그램 실행 결과:

배열 ( [0] => 날짜 )


정규 표현식에서 문자는 w로 표시되고 숫자는 d로 표시됩니다(D는 숫자가 아닌 것을 나타냄). 또는 다중을 나타냄

* 은 0 이상을 의미

?는 없거나 없음을 의미

{n} 은 특정 숫자를 나타냅니다.

{m, n} 은 m보다 크고 n보다 작습니다.

다음과 같습니다:

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 $name = "zhang"; // wang zhu hu ma tan
 
 if (preg_match('/an|hu/', $name, $arr)) {
     print_r($arr);
 } else {
     echo '匹配失败';
 }
 ?>
프로그램 실행 결과:

Array ( [0] => )

또는 조건을 사용하여 문자열을 일치시킬 수 있습니다. 단일 문자 또는 문자인 경우 범위 표현을 사용할 수 있습니다

[]를 사용할 수 있습니다. 문자의 값 범위를 나타냅니다.

'/[a0.]/'은 a, 0 또는 을 포함하는 모든 문자열과 일치할 수 있습니다.

또한 정규 표현식에서는 -를 사용할 수도 있습니다. to 범위 집합을 나타냅니다

• [a-z] 26개의 소문자 중 하나를 나타냅니다

• [A-Z] 대문자를 나타냅니다

• [0-9] 십진수 표현하기

이제 많이 알았으니, 정규식을 사용하여 형식의 내용을 일치시키는 방법을 살펴보겠습니다.

PHP - 유효성 검사 이름

다음 코드는 이름 필드에 문자와 공백이 포함되어 있는지 여부를 간단한 방법으로 감지합니다. 이름 필드 값이 잘못된 경우 오류 메시지가 출력됩니다.

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z]*$/",$name) ) {
$nameErr = "문자와 공백만 허용됩니다.";
}


PHP - 확인 이메일

규칙: 이메일 이름은 문자, 숫자, 밑줄, 점으로 구성된 모든 문자일 수 있습니다. 이메일에는 @ 기호와 다음 텍스트가 포함되어야 합니다. 도메인 이름 규칙

다음 코드는 이메일 주소가 합법적인지 여부를 간단한 방법으로 확인합니다. 이메일 주소가 잘못된 경우 오류 메시지가 출력됩니다:

$email = test_input($_POST["email"]);
if (!preg_match( "/^ [a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/",$email)) {
$emailErr = "잘못된 이메일 형식!";
}


PHP - URL 확인

다음 코드는 URL 주소가 유효한지 확인합니다(다음 정규 표현식 작업 URL에는 대시: "-"가 포함되어 있음). URL 주소가 잘못된 경우 오류 메시지가 출력됩니다.

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

이제 위에서 배운 내용을 결합하여 양식의 데이터를 검증하겠습니다.

<!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>PHP中文网</title>
 </head>
 
 <style>
     .error {color: #FF0000;}
 </style>
 <body>
 <?php
 // 定义变量并设置为空值
 $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"]);
         // 检查电子邮件地址语法是否有效
         if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) {
             $emailErr = "无效的 email 格式";
         }
     }
 
     if (empty($_POST["website"])) {
         $website = "";
     } else {
         $website = test_input($_POST["website"]);
         // 检查 URL 地址语法是否有效(正则表达式也允许 URL 中的斜杠)
         if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
             $websiteErr = "无效的 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 验证实例</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>
     网址:<input type="text" name="website">
     <span class="error"><?php echo $websiteErr;?></span>
     <br><br>
     评论:<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>

위에서 작성한 규칙에 따라 작성하지 않으면 다음 프롬프트가 나타납니다.

0.png

입력한 정보가 정확하면 인증에 통과됩니다

정규식을 사용하여 휴대폰 번호를 일치시킬 수도 있습니다. 숫자.


지속적인 학습
||
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文网</title> </head> <style> .error {color: #FF0000;} </style> <body> <?php // 定义变量并设置为空值 $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"]); // 检查电子邮件地址语法是否有效 if (!preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$email)) { $emailErr = "无效的 email 格式"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // 检查 URL 地址语法是否有效(正则表达式也允许 URL 中的斜杠) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "无效的 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 验证实例</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> 网址:<input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> 评论:<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>
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!