2013-06-25 92 views
0

我在麻煩中。匹配字符串並返回給定字符串的預選編號

Accutally在php(用戶名,密碼)的表單中,我想爲每個用戶名設置密碼。意思是

if($fh == "Harry") { 
$password = "123456"; 
} 

它可以很容易地創建。但問題是我總共有500多個用戶名。因此,我不能通過給定的方法設置每個用戶名的密碼。

對我的一個朋友,創建這個通過這種方法。我發現他的用戶名密碼是由這種類型設置的。

"Harry":"12345","Biswas":"789456","garry":"56894" 

所以我想創建,像這樣。 所以請告訴我。我如何創建這個?

+0

這個類型你的spea國王是一個文件中的數據? – DevZer0

+0

500位用戶是否知道您將以純文本格式存儲密碼? – JimL

+0

是devzero它在一個txt文件中 – user2424807

回答

3

爲您的數據創建一個查找數組:

$str = '"Harry":"12345","Biswas":"789456","garry":"56894"'; 

$passwords = array(); 
foreach(str_getcsv($str) as $entry) { 
    list($name, $pw) = explode(':', $entry); 
    $passwords[$name] = $pw; 
} 

然後,就用自己的名字爲重點,以找到自己的密碼:

$fh = "Harry"; 
echo $passwords[$fh]; // 12345 
+0

它的回聲 - 「12345」 – user2424807

+0

@ user2424807 - 正如它應該的那樣。如果你知道這個人的用戶名,並且你想設置他們的密碼,你所要做的就是:'$ passwords [「USERNAME」] =「新密碼」;'。 – nickb

+0

我不知道你在說什麼。我只是預設密碼。所以如果用戶填寫表格,那麼他不需要輸入密碼。機器人會將他設定的密碼作爲他的用戶名 – user2424807

2

假設你的數據文件看起來像這樣"Harry":"12345","Biswas":"789456","garry":"56894" 和數據文件名是userpass.txt

$data = file_get_contents("userpass.txt"); 
$records = explode(",", $data); 

foreach ($records as $record) { 
    $record = preg_replace('/"/', "", $record); 
    $userpass = explode(":", $record); 

    //DO YOUR SQL STATMENT HERE 

    $sql = "INSERT INTO user (username, `password`) VALUES ('" . $userpass[0] . "','" . $userpass[1] . "')"; 
    //execute query 
}