-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfolders-students.php
More file actions
102 lines (80 loc) · 3.2 KB
/
folders-students.php
File metadata and controls
102 lines (80 loc) · 3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
// fonction var_dump personnalisée
function d($variable) {
echo '***** VAR DUMP / Start *****';
echo '<pre>';
var_dump($variable);
echo '</pre>';
echo '***** End / VAR DUMP *****';
die();
}
/*
*******************************************
EXPORT CSV
*******************************************
TODO : exporter le contenu des champs csv dans un tableau associatif PHP Prenom => Nom
*/
// on déclare le nom du fichier csv contenant les datas des étudiants
$fileName = 'listing-students.csv';
// on ouvre en lecture le fichier csv avec contrôle d'erreur à l'ouverture
// la fonction fopen() ouvre le fichier $fileName en lecture seule (argument 'r') et place le curseur au début de la première ligne
// retourne une ressource représentant le pointeur de fichier ou FALSE si erreur
// on déclare le tableau des étudiants
$students = [];
if ($handle = fopen($fileName, 'r')) {
// la fonction fgetcsv() retourne les champs du csv dans un array indexé $line
// index 0 => nom ; index 1 => prénom
while ($line = fgetcsv($handle)) {
// on stocke les datas des étudiants dans un tableau de tableaux indexés
// index 0 : premier étudiant
// index 0 => nom ; index 1 => prénom
array_push($students, $line);
}
} else {
echo 'Erreur à l\'ouverture du fichier ' . $fileName;
}
//d($students);
/*
*******************************************
TRAITEMENT DES DATAS
*******************************************
TODO : passer les datas des étudiants en minuscule, supprimer les accents et remplacer les espaces par des underscores
*/
// strtolower() renvoie une chaîne en minuscules
// str_replace() remplace un caractère par un autre
// on stocke les datas formatées des étudiants dans $studentsFormated qui est un tableau indexé de tableaux indexés
// index 0 : premier étudiant
// index 0 : prenom ; index 1 : nom
foreach ($students as $key => $value) {
// on stocke le prénom en index 0
$studentsFormated[$key][0] = str_replace('é', 'e', str_replace(' ', '_', strtolower($value[1])));
// on stocke le nom en index 1
$studentsFormated[$key][1] = str_replace('é', 'e', str_replace(' ', '_', strtolower($value[0])));
}
/*
*******************************************
CREATION DES DOSSIERS
*******************************************
TODO : générer les noms de dossier en kebab case sous la forme prenom-nom
*/
// on déclare le nom du dossier de stockage des dossiers étudiants
$folderParent = 'students';
// s'il n'est pas déjà présent, on crée ce dossier de stockage
// is_dir() teste l'existence d'un dossier
// mkdir() crée un dossier
if(!is_dir($folderParent)){
mkdir($folderParent);
echo 'création du dossier parent OK <br />';
}
// on déclare un compteur de dossier créé
$cpt = 1;
// on crée dans le dossier de stockage les dossiers des étudiants au format prenom-nom
// $value[0] contient le prénom, $value[1] le nom
foreach ($studentsFormated as $value) {
$folderName = $value[0] . '-' . $value[1];
if(!is_dir($folderParent . '/' . $folderName)){
mkdir($folderParent . '/' . $folderName);
echo '#' . $cpt . ' - dossier ' . $folderName . ' créé avec succès <br />';
$cpt++;
}
}