一.重点
用字符串的内置函数对输入的字符串进行处理
substr() 取字符串
ord()转为ascii码
str()把ascii码转为字符串
strcmp()比较两个字符串,转为ascii码比较
strcasecmp()忽略大小写比较
strpos($string,字符)字符串中查找,返回第一次出现的值,没有返回false
stripos()忽略大小写
strrpos()最后出现的位置
strip_tags()过滤字符串的html和php标记
strip_tags($str,‘<a>‘)留下<a>标签
strtolower()转为小写
trim()过滤两端空格
ltrim()过滤左空格
rtrim()过滤右空格
empty()是否为空
join(‘,‘,$string)以‘,‘分隔 ,数组转为字符串
md5()加密字符串
sha1()加密字符串
二.练习代码用户登录注册页面
两个页面 register.php ????doaction.php
register.php 首页代码
<?php//简单的制作验证码字符串$string = ‘qwertyuiopasdfgjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890‘;//echo $string{mt_rand(0,strlen($string)-1)};$code = ‘‘;for($i=0;$i<4;$i++) { ???$code .= ‘<span style="color:rgb(‘.mt_rand(0,255).‘,‘.mt_rand(0,255).‘,‘.mt_rand(0,255).‘)">‘ ???.$string{mt_rand(0,strlen($string)-1)}.‘</span>‘;}//echo $code;?><!DOCTYPE html><html lang="en"><head> ???<meta charset=‘UTF-8‘> ???<title>注册练习</title></head><body><h1 align="center">个人注册页面</h1><div align="center"><form method="post" action="doaction.php"> ???<table border="1" cellspacing="0" cellpadding="0" width="60%" bgcolor="#ABCDEF"> ???????<tr> ???????????<td align="center">用户名</td> ???????????<td><input type="text" name="username" id="" placeholder=‘请输入合法的用户名...‘>用户名首字母以字母开始,并且长度6~10</td> ???????</tr> ???????<tr> ???????????<td align="center">密码</td> ???????????<td><input type="password" name="password" placeholder=‘请输入密码‘>密码不能为空长度6~10</td> ???????</tr> ???????<tr> ???????????<td align="center">确认密码</td> ???????????<td><input type="password" name="password1" id="" placeholder=‘请输入确认密码‘>两次密码输入一直</td> ???????</tr> ???????<tr> ???????????<td align="center">邮箱</td> ???????????<td><input type="text" name="email" id="" placeholder=‘请输入合法的邮箱名‘>邮箱必须包含@</td> ???????</tr> ???????<tr> ???????????<td align="center">兴趣爱好</td> ???????????<td> ???????????????<input type="checkbox" name="fav[]" id="" value="php">php ???????????????<input type="checkbox" name="fav[]" id="" value="java">java ???????????????<input type="checkbox" name="fav[]" id="" value="python">python ???????????????<input type="checkbox" name="fav[]" id="" value="javascript">javascript ???????????????<input type="checkbox" name="fav[]" id="" value="vue">vue ???????????</td> ???????</tr> ???????<tr> ???????????<td align="center">验证码</td> ???????????<td> ???????????<input type="text" name="verify"><?php echo $code?> ???????????<input type="hidden" name="verify1" value="<?php echo strip_tags($code)?>"> ???????????</td> ???????</tr> ???????<tr> ???????????<td align="center" colspan="2"><input type="submit" value="立即注册"></td> ???????</tr> ???</table></div></form></body></html>
doaction.php 后端验证代码
<?phpheader("Content-type:text/html;charset=utf-8");//接收数据$username = $_POST[‘username‘];$password = $_POST[‘password‘];$password1 = $_POST[‘password1‘];$email = $_POST[‘email‘];$fav = $_POST[‘fav‘];//判断用户是否选择了爱好,并将数据转化为字符串显示出来,并用,分隔if (!empty($fav)) { ???$favStr=join(‘,‘,$fav);}$verify = trim(strtolower($_POST[‘verify‘]));//都转化为小写,并去掉两边的空格$verify1 = trim(strtolower($_POST[‘verify1‘]));//都转化为小写,并去掉两边的空格//echo $verify1;$redirectUrl = ‘<a href="register.php">重新注册</a>‘;//检测第一个字符是不是字母//$char = $username{0};$char = substr($username,0,1);$ascli = ord($char);//得到指定字符的ascli码//检测ascli是否在65~90(A~Z)或者97~122(a~z)之间表示是字母if (!(($ascli>=65 && $ascli<=90) || ($ascli>=97 && $ascli<=122))) { ???exit(‘用户名首字母不是以字母开头开始<br>‘.$redirectUrl);}//检测用户名长度6~10$userLen = strlen($username);if ($userLen<6 || $userLen>10) { ???exit(‘用户名长度必须是6~10<br>‘.$redirectUrl);}//检测密码不能为空$passwdLen = strlen($password);if ($passwdLen == 0) { ???die(‘密码不能为空<br>‘.$redirectUrl);}//检测密码长度6~10if($passwdLen<6 || $passwdLen>10) { ???die(‘密码长度不符合规范<br>‘.$redirectUrl);}//检测密码两次是否一致//if ($password != $password1 ) {// ?exit(‘两次密码不一致<br>‘.$redirectUrl);//}if (strcmp($password, $password1) != 0) { ???exit(‘两次密码不一致<br>‘.$redirectUrl);}//检测邮箱的合法性if (strpos($email, ‘@‘) == false) { //0==false 0也返回false ???exit(‘非法邮箱<br>‘.$redirectUrl);}//检测验证码是否符合规范if ($verify != $verify1) { ???exit(‘验证码错误<br>‘.$redirectUrl);}//使用md5进行加密密码$password = md5($password);echo "恭喜您注册成功,用户信息如下:";$userinfo=<<<EOF<table border="1" cellspacing="0" cellpadding="0" width="50%"> ???<tr> ???????<td>用户名</td> ???????<td>密码</td> ???????<td>邮箱</td> ???????<td>兴趣爱好</td> ???</tr> ???<tr> ???????<td>$username</td> ???????<td>$password</td> ???????<td>$email</td> ???????<td>$favStr</td> ???????????</tr></table>EOF;echo $userinfo;?>
三.截图
PHP字符串操作实战用户注册检测界面
原文地址:http://blog.51cto.com/anfishr/2140420