Bonjour,
Voilà je dois réaliser un script php qui compare deux fichiers CSV et qui écrit les comparaisons dans un nouveau fichier CSV.
EN GROS : J'ai un fichier A avec 240 produits et dans le fichiers 2 colonnes, 1 référence et 1 stock (Fichier de mon site).
J'ai un fichier B (Fichier du fournisseur qui est mis à jour quotidiennement) avec idem 1 colonne référence et 1 colonne stock.
J'aimerais savoir s'il était possible de créer un script PHP qui chercherais dans les deux fichiers si dans un premier temps la référence d'un produit A se trouve dans le fichier A et dans le fichier B puis ensuite de comparer les stocks et si jamais ce n'est pas les mêmes, dans ce cas, on écrit dans un fichier C la référence + le stock actuelle (Donc celui du fichier B).
Ensuite si jamais il y a une référence dans le fichier B mais pas dans le fichier A j'aimerais également qu'il m'écrive cette différence dans le fichier C.
En gros c'est dans le but d'actualiser mes stocks quotidiennement ainsi que d'entrer des nouveaux produits sans devoir chercher ligne par ligne les différences.
Merci par avance pour votre aide.
Pour le moment j'ai commencer à faire ce bout de code, mais il ne fonctionne pas comme j'aimerais .. :
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52 <?php // on cree la fonction function recupcsv($nomfichier) { $tabcsv = array(); // On cree un tableau $recupfichier = fopen($nomfichier , "r"); // Ouverture d'un fichier if ($recupfichier) { // On test la fin du fichier while (!feof($recupfichier)) { $valeur = fgetcsv($recupfichier , 0 , ';' , '"' ); // Recuperation des donnees du csv if ( empty($valeur)) continue; // Donnee vide //CONTINUE: structure de controle $key=$valeur[3]; $tabcsv[$key]=$valeur; // On met les valeur dans le tableau } fclose($recupfichier); // On ferme le fichier } else { throw new Exception("erreur de lecture du fichier $nomfichier"); // On lance une exception(fichier incorrecte) } return $tabcsv; // On conserve notre tableau } /*---------- LANCEMENT DU PROGRAMME ----------*/ $nomfichier1=isset($_REQUEST['f1'])?/*$_REQUEST['f1']*/:'infosA.csv'; // On rentre le nom du premier fichier $nomfichier2=isset($_REQUEST['f2'])?/*$_REQUEST['f2']*/:'infosB.csv'; // On rentre le nom du second fichier if ( !$nomfichier1 ) { die("Il me faut le premier fichier (f1)"); }// On verifie la presence du premier fichier if ( !$nomfichier2 ) { die("Il me faut le second fichier (f2)"); }// On verifie la presence du second fichier try { $tabfichier1 = recupcsv($nomfichier1); // On lance la fonction cree precedement sur le premier fichier $tabfichier2 = recupcsv($nomfichier2); } catch (Exception $e) { // On recupere les exception dans une variable e die($e->getMessage()); // On demande d'afficher le message destinée au exception } print_r($tabfichier1); echo '</br>'; print_r($tabfichier2); echo '</br>'; foreach ($tabfichier1 as $key => $val){ while(list($key_det_1, $val_det_1)=each($val)){ if($tabfichier2[$key][$key_det_1] != $val_det_1) echo $key." => ".$key_det_1." => ".$val_det_1." || ".$tabfichier2[$key][$key_det_1]."<br>"; } } ?>
Partager