1

ファイルを文字列に変換するための迅速で簡単な方法が必要です次に、ファイルを$usernameと$passwordという2つの別個の配列に変換する必要があります

ファイル形式:

user1:pass1
user2:pass2
user3:pass3

など。私は配列が次のように出てくる必要があります

$username[0] = "user1";
$password[0] = "pass1";

$username[1] = "user2";
$password[1] = "pass2";

私はすでにこのようなファイルを読んでいます:

$file = file_get_contents("accounts.txt");
4

5 に答える 5

2

explode()を読んでください。ただし、パスワード(またはユーザー名)にコロンが含まれている場合、これは機能しないことに注意してください。パスワードを暗号化することもできます。また、パスワードの暗号化にソルトを使用することを検討してください。

<?php
$file = file_get_contents("accounts.txt");
$file = explode("\n",$file);
$username = array();
$password = array();
foreach ($file as $line) {
    $line = explode(':',trim($line)); // trim removes \r if accounts.txt is using a Windows file format (\r\n)
    $username[] = $line[0];
    $password[] = $line[1];
}
于 2012-11-11T08:44:51.930 に答える
2

どういう意味ですか:

$content = file("config.txt");
$username = array();
$password = array();

foreach($content as $con) {
  list($user, $pass) = explode(":", $con);
  $username[] = $user;
  $password[] = $pass;

}
于 2012-11-11T08:45:08.933 に答える
1

代わりに、配列は次のようになります

$file = file("log.txt");
$users = array();
foreach ( $file as $line ) {
    list($u, $p) = explode(':', $line);
    $users[] = array("user" => trim($u),"password" => trim($p));
}

var_dump($users);

出力

array (size=3)
  0 => 
    array (size=2)
      'user' => string 'user1' (length=5)
      'password' => string 'pass1' (length=5)
  1 => 
    array (size=2)
      'user' => string 'user2' (length=5)
      'password' => string 'pass2' (length=5)
  2 => 
    array (size=2)
      'user' => string 'user3' (length=5)
      'password' => string 'pass3' (length=5)
于 2012-11-11T08:49:07.490 に答える
0
<?php

$file = "abcde:fghijkl\nmnopq:rstuvwxyz\nABCDE:FGHIJKL\n";

$reg="/([A-Za-z]{5}):([A-Za-z]+\\n)/i";

preg_match_all($reg,$file,$res);

for($i=0;$i<count($res[0]);$i++){
    echo 'usename is '.$res[1][$i].'====='.'passwd is '. $res[2][$i]."<br />";
}

?>
于 2012-11-11T08:48:24.360 に答える
0

:または、 :のインデックスを見つけることで、文字列の分割を見つけることができます。

<?php
//what you would really do
//$file = file_get_contents("accounts.txt");
//just for example
$file = "abcde:fghijkl\nmnopq:rstuvwxyz\nABCDE:FGHIJKL";
$e = explode("\n", $file);
$username = array();
$password = array();
foreach($e as $line) {
    $username[] = substr($line, 0, strpos($line, ':'));
    $password[] = substr($line, strpos($line, ':') + 1);
}
foreach($username as $u) {
    echo $u."\n";
}
foreach($password as $p) {
    echo $p."\n";
}
?>

出力

abcde
mnopq
ABCDE
fghijkl
rstuvwxyz
FGHIJKL
于 2012-11-11T08:51:54.050 に答える