在PHP中创建2个文件的关联数组

时间:2016-02-14 15:05:00

标签: php arrays associative-array

我在本地主机上使用php制作登录系统。

注册新用户时,
- 用户名存储在/registration/usernames.txt,
中 - 密码存储在/registration/passwords.txt中 当我将这些内容写入文件usernames.txtpasswords.txt时,我会这样做:

fwrite( $file_usernames, $usernameR.', ' );
fwrite( $file_passwords, $passwordR.', ' );

所以当:

Username: John
Password: blablabla
输入

,它存储在文件usernames.txt中:

John, 

,在passwords.txt中,它存储为:

blablabla, 

现在,当我想登录任何注册用户时,首先我要创建一个关联数组,其中“key”是用户名,“value”是密码然后在数组中循环并查找用户名和密码是对的。

我试着这样做:

// create array of: "username" => "password"
$file_usernames_read = fread( fopen( "./registration/usernames.txt", "r" ), filesize( "./registration/usernames.txt" ) );
$file_passwords_read = fread( fopen( "./registration/passwords.txt", "r" ), filesize( "./registration/passwords.txt" ) );

$usernames = array( $file_usernames_read );
$passwords = array( $file_passwords_read );
$together = array_combine( $usernames, $passwords );

但它没有以这种方式工作,我没有其他方式可以尝试。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这应该这样做:

$usernames = explode(", ", file_get_contents("./registration/usernames.txt"));
$passwords = explode(", ", file_get_contents("./registration/passwords.txt"));

$map = array_combine($usernames, $passwords);

但一般情况下,您应该先将密码加密(使用password_hash),然后再将其存储在文本文件中。

您还应该考虑使用数据库系统来存储用户数据,而不是纯文本文件。