Для меня я не использую сторонние библиотеки для работы с относительно простыми файлами, такими как csv
, потому что вы уже можете прочитать его в одной строке кода и преобразовать его в массив, подобный этому:
$csv = array_map('str_getcsv', file('book.csv'));
Затем мы создадим массив ассоциативных массивов с заголовками столбцов первой строки, такими как ключи:
array_walk($csv, function(&$a) use ($csv) {
$a = array_combine($csv[0], $a);
});
Затем вы можете удалить заголовок столбца и сохранить его, если хотите, так:
$header = array_shift($csv);
Затем вы можете добавить свой случайный пароль для каждого пользователя, например, так:
foreach ($csv as $key => $value)
{
$csv[$key]['password'] = 'random_password';
}
Это создаст массив, подобный следующему:
[0]=>
array(3) {
["username"]=>
string(6) "sherif"
["email"]=>
string(15) "sherif@code.com"
["password"]=>
string(15) "random_password"
}
...
Затем продолжите делатьмагия, отправьте электронное письмо каждому пользователю в этом массиве, сохраните его в своей базе данных, используя insert_batch
или что хотите.
Наконец, по поводу вашего другого html/css
вопроса, попробуйте задать еще один отдельный вопрос.
Окончательная версия:
$csv = array_map('str_getcsv', file('book.csv'));
array_walk($csv, function(&$a) use ($csv) {
$a = array_combine($csv[0], $a);
});
$header = array_shift($csv);
foreach ($csv as $key => $value)
{
$csv[$key]['password'] = 'random_password';
}
РЕДАКТИРОВАТЬ: Если вы хотите прочитать загруженный файл, у вас есть два варианта, первыйэто читать прямо из tmp следующим образом:
$csv = array_map('str_getcsv', file($_FILES['uploadedfile']['tmp_name']));
Или вы можете сначала сохранить файл и прочитать путь, как указано выше.
О том, будет ли он работать с любым файлом csv
, да, он должен работать с любым действительным файлом csv без проблем.