如何在php中改变字符串的大小写? passw5ORD到PAssW5ord?

前端之家收集整理的这篇文章主要介绍了如何在php中改变字符串的大小写? passw5ORD到PAssW5ord?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Meta Question所述,Facebook接受我们密码的完全相反的案例变体.例如:
  1. 1.- paSSw5ORD (Original password)
  2. 2.- PAssW5ord (Case altered to exact opposite,Capital->Small and vice-versa.)
  3. 3.- PaSSw5ORD (Only first letter's case altered)

如何获得第二个变体,前提是第一个变体是原始变体,由用户输入(或者在用户输入第二个版本时获得第一个变体)?
这是我对此的看法.

  1. <?PHP
  2.  
  3. $pass = "paSSw5ORD"; //Example password
  4. $pass_len = strlen($pass); //Find the length of string
  5.  
  6. for($i=0;$i<$pass_len;$i++){
  7. if(!(is_numeric($pass[$i]))){ //If Not Number
  8. if($pass[$i]===(strtoupper($pass[$i]))){ //If Uppercase
  9. $pass2 .= strtolower($pass[$i]); //Make Lowercase & Append
  10. } else{ // If Lowercase
  11. $pass2 .= strtoupper($pass[$i]); //Make Uppercase & Append
  12. }
  13. } else{ //If Number
  14. $pass2 .= $pass[$i]; //Simply Append
  15. }
  16. }
  17.  
  18. //Test both
  19. echo $pass."\r\n";
  20. echo $pass2;
  21. ?>

但是如何使用特殊字符处理密码(所有这些都可以在标准英文键盘上进行?

  1. !@#$%^&*()_+|?><":}{~[];',./ (Space also)

这不适用于所有上述特殊字符.

  1. if(preg_match('/^\[a-zA-Z]+$/',"passWORD")){
  2. //Special Character encountered. Just append it and
  3. //move to next cycle of loop,similar to when we
  4. //encountered a number in above code.
  5. }

我不是RegEx的专家,那么如何修改上面的RegEx以确保它处理所有上述特殊字符?

这是一个切换字符串中字符大小写的函数.
  1. <?PHP
  2. $string = "Hello"; // the string which need to be toggled case
  3. $string_length = strlen($string); // calculate the string length
  4. for($i=0;$i<$string_length;$i++){ // iterate to find ascii for each character
  5. $current_ascii = ord($string{$i}); // convert to ascii code
  6. if($current_ascii>64 && $current_ascii<91){ // check for upper case character
  7. $toggled_string .= chr($current_ascii+32); // replace with lower case character
  8. }elseif($current_ascii>96 && $current_ascii<123){ // check for lower case character
  9. $toggled_string .= chr($current_ascii-32); // replace with upper case character
  10. }else{
  11. $toggled_string .= $string{$i}; // concatenate the non alphabetic string.
  12. }
  13. }
  14. echo "The toggled case letter for $string is <hr />".$toggled_string; // output will be hELLO
  15. ?>

希望对你有帮助

在这个link中给出了相同的例子.

猜你在找的PHP相关文章