2016-08-20 25 views
1

簡介:
所以我做了一個PHP用戶名檢查,如果被請求的用戶名是在數組中。檢查如果文本是數組,但不是一個情況下,PHP敏感

問題:
現在的問題是,如果代碼檢查該用戶名的數組中列出,它是一個區分大小寫,有一個方法,以除去if (in_array($username, $special))區分大小寫?

代碼:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <meta http-equiv="x-ua-compatible" content="ie=edge"> 
    <title>Check Username</title> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" integrity="sha384-y3tfxAZXuh4HwSYylfB+J125MxIs6mR5FOHamPBG064zB+AFeWH94NdvaCBm8qnd" crossorigin="anonymous"> 
    </head> 
    <body> 
    <br> 
    <div class="container"> 
     <form method="post"> 
     <input type="text" name="username" placeholder="Username"> 
     <input type="submit" value="Check"> 
     </form> 
     <?php 
     $username = $_POST['username']; 
     # this is the Array 
     $special = array("Admin", "Mod"); 
      if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
       if (in_array($username, $special)) { 
       echo "Username not available!"; 
       } else { 
       echo "The username is available!"; 
       } 
      } 
     ?> 
    </div> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/js/bootstrap.min.js" integrity="sha384-vZ2WRJMwsjRMW/8U7i6PWi6AlO1L79snBrmgiDpgIWJ82z8eA5lenwvxbMV1PAh7" crossorigin="anonymous"></script> 
    </body> 
</html> 

回答

2

如果你正在尋找的用戶名名稱是區分敏感(通常會是常態),當您創建陣列添加有效的用戶名是小寫然後將帖子用戶名轉換爲小寫。

東西沿着這些線路就足夠了:

... 
// Convert post username to lower 
$username = strtolower($_POST['username']); 
# this is the Array 
// Create the array of valid usernames with lowercase values 
$special = array("admin", "mod"); 
... 
0

對不起!我錯了。你可以像這樣使用in_array

in_array(strtolower($username), array_map('strtolower', $special)); 
0

使用內置函數preg_grep():

$a= array(
'alpha', 
'beta', 
'gamma' 
); 

print_r(preg_grep("/BeTa/i" , $a)); 
相關問題