2013-06-25 52 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 
}