php实现 简单密码(代码颜色变化)
php實(shí)現(xiàn)? 簡(jiǎn)單密碼(代碼顏色變化)
一、總結(jié)
一句話總結(jié):寫代碼的時(shí)候一定要關(guān)注代碼的顏色變化,不然低級(jí)錯(cuò)誤害死人。常量變量會(huì)有不同顏色,所以$str少$符號(hào)變成常量的時(shí)候很容易發(fā)現(xiàn)。
?
1、變量$符號(hào)忘記寫如何避免?
關(guān)注代碼顏色變化,常量變量會(huì)有不同顏色,所以$str少$符號(hào)變成常量的時(shí)候很容易發(fā)現(xiàn)。
?
2、23 if($str>='a'&&$str<='c') return '2'; 這里把c寫成了z,也是無(wú)語(yǔ)?
寫完代碼檢查,還是小心為好
?
3、如何實(shí)現(xiàn) 大寫字母則變成小寫之后往后移一位?
用ASCII碼加1即可
19 return strtolower(chr(ord($str)+1));?
4、$str[$i]>='A'&&$str[$i]<='Z' 如何簡(jiǎn)便書寫?
用preg_match()
7 if($str[$i]>='A'&&$str[$i]<='Z'){ 5 if(preg_match("/[A-Z]/",$s[$i])){?
5、php字符串轉(zhuǎn)化為小寫?
strtolower()
19 return strtolower(chr(ord($str)+1));?
二、簡(jiǎn)單密碼
題目描述
密碼是我們生活中非常重要的東東,我們的那么一點(diǎn)不能說(shuō)的秘密就全靠它了。哇哈哈.?接下來(lái)淵子要在密碼之上再加一套密碼,雖然簡(jiǎn)單但也安全。
?
假設(shè)淵子原來(lái)一個(gè)BBS上的密碼為zvbo9441987,為了方便記憶,他通過(guò)一種算法把這個(gè)密碼變換成YUANzhi1987,這個(gè)密碼是他的名字和出生年份,怎么忘都忘不了,而且可以明目張膽地放在顯眼的地方而不被別人知道真正的密碼。
?
他是這么變換的,大家都知道手機(jī)上的字母:?1--1,?abc--2,?def--3,?ghi--4,?jkl--5,?mno--6,?pqrs--7,?tuv--8?wxyz--9,?0--0,就這么簡(jiǎn)單,淵子把密碼中出現(xiàn)的小寫字母都變成對(duì)應(yīng)的數(shù)字,數(shù)字和其他的符號(hào)都不做變換,
?
聲明:密碼中沒(méi)有空格,而密碼中出現(xiàn)的大寫字母則變成小寫之后往后移一位,如:X,先變成小寫,再往后移一位,不就是y了嘛,簡(jiǎn)單吧。記住,z往后移是a哦。
?
輸入描述:
輸入包括多個(gè)測(cè)試數(shù)據(jù)。輸入是一個(gè)明文,密碼長(zhǎng)度不超過(guò)100個(gè)字符,輸入直到文件結(jié)尾
輸出描述:
輸出淵子真正的密文
示例1輸入
復(fù)制 YUANzhi1987輸出
復(fù)制 zvbo9441987?
代碼:
1 <?php 2 //稍微復(fù)雜問(wèn)題:分類 3 $str=trim(fgets(STDIN)); 4 $len=strlen($str); 5 for($i=0;$i<$len;$i++){ 6 //大寫字母 7 if($str[$i]>='A'&&$str[$i]<='Z'){ 8 $str[$i]=changeUpCase($str[$i]); 9 }else if($str[$i]>='a'&&$str[$i]<='z'){ 10 $str[$i]=changeLowCase($str[$i]); 11 } 12 } 13 echo $str; 14 15 function changeUpCase($str){ 16 //是Z 17 if($str=='Z') return 'a'; 18 //不是Z 19 return strtolower(chr(ord($str)+1)); 20 } 21 22 function changeLowCase($str){ 23 if($str>='a'&&$str<='c') return '2'; 24 else if($str>='d'&&$str<='f') return '3'; 25 else if($str>='g'&&$str<='i') return '4'; 26 else if($str>='j'&&$str<='l') return '5'; 27 else if($str>='m'&&$str<='o') return '6'; 28 else if($str>='p'&&$str<='s') return '7'; 29 else if($str>='t'&&$str<='v') return '8'; 30 else if($str>='w'&&$str<='z') return '9'; 31 } 32 33 ?>?
代碼2:
1 <?php 2 3 while(fscanf(STDIN,"%s",$s)==1){ 4 for($i=0;$i<strlen($s);$i++){ 5 if(preg_match("/[A-Z]/",$s[$i])){ 6 if($s[$i]=="Z") 7 $s[$i] = "a"; 8 else 9 $s[$i] = chr(ord(strtolower($s[$i]))+1); 10 }else if(preg_match("/[a-z]/",$s[$i])){ 11 if(preg_match("/[abc]/",$s[$i])) 12 $s[$i] = 2; 13 else if(preg_match("/[def]/",$s[$i])) 14 $s[$i] = 3; 15 else if(preg_match("/[ghi]/",$s[$i])) 16 $s[$i] = 4; 17 else if(preg_match("/[jkl]/",$s[$i])) 18 $s[$i] = 5; 19 else if(preg_match("/[mno]/",$s[$i])) 20 $s[$i] = 6; 21 else if(preg_match("/[pqrs]/",$s[$i])) 22 $s[$i] = 7; 23 else if(preg_match("/[tuv]/",$s[$i])) 24 $s[$i] = 8; 25 else if(preg_match("/[wxyz]/",$s[$i])) 26 $s[$i] = 9; 27 } 28 } 29 echo $s."\n"; 30 }?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的php实现 简单密码(代码颜色变化)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Laravel核心代码学习--用户认证系
- 下一篇: JavaScript中发布/订阅模式的理