PHP-PHP數組與字符串

PHP數組與字符串

一、使用循環將用戶輸入的5個數進行由小到大的排序。

<?php 
	echo "請輸入需要排序的數據:<br>";
	echo "<form method='post'>";
	for ($i=1; $i < 6; $i++) { 
		//文本框的名字是數組名
		echo "<input type='text' name='stu[]' size='5'>";
		if ($i < 5) {
			echo "-";
		}
	}
	echo "<input type='submit' name='bt' value='提交'>";
	echo "</form>";
	if (isset($_POST['bt'])) {
		$temp = 0;
		$stu = $_POST['stu'];
		$num = count($stu);
		echo "您輸入的數據有:<br>";
		foreach ($stu as $score) {
			echo $score."<br>";
		}
		/*for ($i=0; $i < $num; $i++) { 
			for ($j=$i+1; $j < $num; $j++) { 
				if ($stu[$i] > $stu[$j]) {
					$temp = $stu[$i];
					$stu[$i] = $stu[$j];
					$stu[$j] = $temp;
				}
			}
		}*/
		sort($stu);
		echo "排序後的數據如下所示:<br>";
		foreach ($stu as $key => $value) {
			echo $value."<br>";
		}
	}
?>

在這裏插入圖片描述

二、由用戶輸入5個學生的學號,如果有相同的學號則只保留一個,找到前綴爲1811的改爲1810,最後將所有學號輸出,以逗號‘,’爲分隔符。

<?php 
	echo "請輸入學號:<br>";
	echo "<form method='post'>";
	for ($i=1; $i < 6; $i++) { 
		//文本框的名字是數組名
		echo "<input type='text' name='stu[]' size='5'>";
		if ($i < 5) {
			echo "-";
		}
	}
	echo "<input type='submit' name='bt' value='提交'>";
	echo "</form>";
	if (isset($_POST['bt'])) {
		$k = 0;
		$jsj = array();
		$stu = $_POST['stu'];
		//print_r($stu);
		for ($i=0; $i < count($stu); $i++) { 
			for ($j=$i+1; $j < count($stu); $j++) { 
				if (strcmp($stu[$i], $stu[$j]) == 0) {
					array_splice($stu, $j, 1);   //將數組中重複的值刪除
				}
			}
		}
		$str = implode(",", $stu);   //使用逗號作爲連接符將數組轉換爲字符串
		echo "所有的學生學號如下:<br>";
		echo $str."<br>";
		foreach ($stu as $value) {
			if (strstr($value, "1811")) {    //查找包含1811的學號
				$string = str_replace("1811", "1810", $value);
				$jsj[$k] = $string;   //將修改的後的學號賦值給數組
				$k++;
			}
		}
		echo "計算機專業的學號如下:<br>";
		echo implode(",", $jsj);
	}
 ?>

在這裏插入圖片描述

三、使用正則表達式驗證表單數據的正確性,表單中包含用戶名、密碼、出生日期、郵箱。要求用戶名爲6-12個字符,密碼爲6-20個數字,出生日期爲有效日期,郵箱地址爲有效的郵件地址。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>註冊頁面</title>
	<style>
		.STYLE1 {
			font-size: 14px;
			color: red;
		}
		div {
			text-align: center;
			font-size: 24px;
			color: #0000FF;
		}
		table {
			margin: 0 auto;
		}
	</style>
</head>
<body>
	<form action="" name="fr1" method="post">
		<div>用戶註冊</div>
		<table border="1" width="480">
			<tr>
				<td width="80">用戶名:</td>
				<td><input type="text" name="ID"></td>
				<td class="STYLE1">*6~12個字符(數字,字母和下劃線)</td>
			</tr>
		  <tr>
		  	<td>密碼:</td>
		  	<td><input type="password" name="PWD" size="21"></td>
		  	<td class="STYLE1">*6~20個數字</td>
		  </tr>
		  <tr>
		  	<td>出生日期:</td>
		  	<td><input type="text" name="BIRTHDAY"></td>
		  	<td class="STYLE1">*有效的日期</td>
		  </tr>
		  <tr>
		  	<td>郵箱:</td>
		  	<td><input type="text" name="EMAIL"></td>
		  	<td class="STYLE1">*有效的郵件地址</td>
		  </tr>
		  <tr>
		  	<td colspan="3" align="center">
		  		<input type="submit" name="GO" value="註冊">&nbsp;&nbsp;&nbsp;
		  		<input type="reset" name="NO" value="取消">
		  	</td>
		  </tr>
		</table>
	</form>
</body>
</html>
<?php 
	if (isset($_POST['GO'])) {
		$id = $_POST['ID'];
		$pwd = $_POST['PWD'];
		$birthday = $_POST['BIRTHDAY'];
		$Email = $_POST['EMAIL'];
		$checkid = preg_match('#^\w{6,12}$#', $id);   //檢查是否爲6~12個字符
		$checkpwd = preg_match('#^\d{6,20}$#', $pwd);  //檢查是否爲6~20個數字
		$checkbirthday = preg_match('#^\d{4}-(0?\d|1?[012])-(0?\d|[12]\d|3[01])$#', $birthday);   //檢查是否是有效日期
		$checkEmail = preg_match('#^[a-zA-Z0-9_\-]+@[a-zA-Z0-9\-\.]+$#', $Email); //檢查郵件地址的合法性
		if (!$checkid) {
			echo "<script>alert('用戶名格式錯誤!');</script>";
		}
		elseif (!$checkpwd) {
			echo "<script>alert('密碼格式錯誤!');</script>";
		}
		elseif (!$checkbirthday) {
			echo "<script>alert('出生日期格式錯誤!');</script>";
		}
		elseif (!$checkEmail) {
			echo "<script>alert('E-mail格式錯誤!');</script>";
		}
		else {
			echo "註冊成功!";
		}
	}
 ?>

在這裏插入圖片描述

四、接收用戶輸入的學生學號、姓名、成績等信息,將接收到的信息存入數組並按照成績升序排序。之後再以表格形式輸出,如果存在學號爲1的學生,則輸出其姓名與成績。

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <title>處理表格數據</title>
 <style>
   table, div, td {
   		text-align: center;
   	}
   	table {
   		margin: 0 auto;
   	}
   	p {
   		font-size: 18px;
   		color: #FF0000;
   	}
   </style>
</head>

<body>
 <form action="" name="fr1" method="post">
   <table border="1">
     <tr>
       <td>
         <div>學號</div>
       </td>
       <td>
         <div>姓名</div>
       </td>
       <td>
         <div>成績</div>
       </td>
     </tr>
     <?php 
   		for ($i=0; $i < 5; $i++) { 
   			echo "<tr><td><input type='text' name='XH[]'></td>
   				      <td><input type='text' name='XM[]'></td>
   				      <td><input type='text' name='CJ[]'></td>
   				   </tr>";
   		}
      ?>
     <tr>
       <td colspan="3">
         <input type="submit" name="bt_stu" value="提交">
       </td>
     </tr>
   </table>
 </form>
 <p align="center">注意:學號值不能重複</p><br>
 <?php 
   	if (isset($_POST['bt_stu'])) {
   		// $XH = $_POST['XH'];
   		// $XM = $_POST['XM'];
   		// $CJ = $_POST['CJ'];
   		
   		/**
   		 * print_r($_POST);
   		 * Array ( [XH] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) 
   		 *	       [XM] => Array ( [0] => a [1] => b [2] => c [3] => d [4] => e ) 
   		 *         [CJ] => Array ( [0] => 78 [1] => 56 [2] => 86 [3] => 49 [4] => 83 ) 
   		 *         [bt_stu] => 提交 )
   		 */
   		foreach ($_POST as $key => $value) {
   			$$key=$value;    //使用PHP中的可變變量$$

   			/**
   			 * $key=XH;
   			 * $value=Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 );
   			 * 即$value=[];
   			 * $$key=$value;
   			 * 即$$key=[];
   			 * 則:$XH=[];
   			 */
   		}
   		array_multisort($CJ, $XH, $XM);
   		for ($i=0; $i < count($XH); $i++) { 
   			$sum[$i] = array($XH[$i], $XM[$i], $CJ[$i]);
   		}
   		echo "<div>排序後成績如下:</div>";
   		echo "<table border='2'><tr><td>學號</td><td>姓名</td><td>成績</td></tr>";
   		foreach ($sum as $value) {
   			list($stu_number, $stu_name, $stu_score)=$value;
   			echo "<tr><td>$stu_number</td><td>$stu_name</td><td>$stu_score</td></tr>";
   		}
   		echo "</table><br>";
   		reset($sum);
   		
   		foreach ($sum as $key => $value) {
   			list($stu_number, $stu_name, $stu_score) = $value;
   			if ($stu_number == '1') {
   				echo "<p align=center>";
   				echo $stu_number."的姓名爲:".$stu_name;
   				echo "成績爲:".$stu_score;
   				break;
   			}
   		}
   	}
    ?>
</body>

</html>

在這裏插入圖片描述

五、新建一個留言簿,留言簿上有E-mail地址和用戶的留言,提取客戶的E-mail地址和留言,要求E-mail地址中@符號前不能有點“.”或逗號“,”。將E-mail地址中@符號前的內容作爲用戶的用戶名,並將用戶留言中第一人稱“我”修改爲“本人”。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		p {
			font-family: "方正舒體";
			font-size: 18px;
		}
		div {
			font-family: "黑體";
			font-size: 18px;
		}
	</style>
</head>
<body>
	<form action="" name="f1" method="post">
		<p>
			您的E-mail地址:<br>
			<input type="email" name="Email" size="31"><br>
			您的留言:<br>
			<textarea name="note" cols="30" rows="10"></textarea>
			<br>
			<input type="submit" name="bt1" value="提交">
			<input type="reset" name="bt2" value="清空">
		</p>
	</form>
	<?php 
	if (isset($_POST['bt1'])) {
		$Email=$_POST['Email'];    //接受E-mail地址
		$note=$_POST['note'];    //接受留言
		if (!$Email || !$note) {
			echo "<script>alert('E-mail地址和留言請填寫完整!');</script>";
		} 
		else {
			$array=explode("@", $Email);
			if (count($array) != 2) {
				echo "<script>alert('E-mail地址格式錯誤!');</script>";
			}
			else {
				$username=$array[0];   //取得@符號前的內容
				$netname=$array[1];    //取得@符號後的內容
				//如果username中含有"."或","則報錯
				if (strstr($username, ".") or strstr($username, ",")) {
					echo "<script>alert('E-mail地址格式錯誤!');</script>";
				}
				else {
					$str1 = htmlspecialchars("<");
					$str2 = htmlspecialchars(">");
					//先將留言都轉換爲HTML實體,不進行解析。
					$note = htmlspecialchars($note);     //防止XSS攻擊
					//將留言中的“我”用“本人”替代
					$newnote = str_replace("我", "本人", $note);
					echo "<div>";
					echo "用戶".$str1.$username.$str2."您好!&nbsp";
					echo "您是".$netname."網友!<br>";
					echo "<br>您的留言是:<br>&nbsp;&nbsp;&nbsp;".$newnote."<br>";
					echo "</div>";
				}
			}
		}
	}
	 ?>
</body>
</html>

在這裏插入圖片描述
在這裏插入圖片描述

創作不易,喜歡的話加個關注點個贊,謝謝謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章