Bonjour, je dois faire en sorte que selon la présence d'un code dans un CSV au choix bloquer ce csv sur un serveur ftp sur lequel il avait été uploadé. Sachant que ce CSV contient des informations sur plusieurs clients à la fois et que tous les clients ne doivent pas être bloqués, je dois donc séparé les données de ce csv afin que:
- pour le client bloqué, prendre ces données et le mettre dans un autre csv avec nom quelconque (l'essentiel c'est qu'il ne garde pas le même nom)
- pour les autres clients, soit laisser ces infos dans le même csv, soit créer un nouveau csv avec le nom du premier csv pour qu'il soit traiter normalement.
Là où je rencontre des difficultés c'est justement au niveau de la "séparation des données". Je n'arrive pas à faire la boucle afin que ça récupère toutes les lignes d'un client et le mettre dans un autre csv, sachant que chaque client est délimité lorsque Data[0]= "H" (en clair, lorsque la 1ère colonne d'une ligne est à "H", c'est un nouveau client).
J'espère avoir été le plus clair que possible.
Ce que j'ai essayé de faire et qui ne fonctionne pas donne ça:
Merci par avance de votre aide (ou même de m'avoir juste lu, ça voudra dire que vous avez pris la peine d'y réfléchir un peu, ce qui est déjà beaucoup pour moi)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 $Final_file_content = ""; $handle = @fopen('test.csv', "r"); if ($handle) { while (!feof($handle)) { $buffer = fgetcsv($handle, 10000, ";"); do { $linne = array(); foreach ($buffer as $key) { $linne[] .= $key; } } while ($buffer[0] != "H"); } $Final_file_content .= $linne; } fclose($handle); echo $Final_file_content; //Creation du nouveau fichier $new_file = @fopen("test2.csv", "w+"); // Ajout des informations if (fwrite($new_file, $Final_file_content) === FALSE) { echo "Impossible d'écrire dans le fichier ($filename)"; exit; } fclose($new_file);
Partager