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
| <?php
$i=0; // initialisation de i à 0
$tab=array(); // initialisation du tableau
$in2 = fopen('C:\chemin\fic2.csv', 'r'); // fichier des calibres pour controles
if ($in2)
{
while ($data_in2 = fgetcsv($in2, 0, ';'))
{
$i++;
// rangement des données du fichier 2 dans un tableau php
$tab[$i]=$data_in2;
}
fclose($in2); // fermeture du fichier 2
}
$imax=$i; // sauvegarde la valeur maximum de i
$in = fopen('C:\chemin\fic1.csv', 'r'); //fichier de donnees brutes
$out = fopen('C:\chemin\fichiersortie.csv', 'a+'); // fichier de sortie
if ($in)
{
while ($data_in = fgetcsv($in, 0, ';'))
{
// pour chaque ligne du fichier 1 on va lui faire parcourir le tableau ou l'on stocke les données du fichier 2 csv
for ($y= 1; $y <= $imax ; $y++) // on va a chaque fois parcourir le tableau qui contient les données du fichier 2 de la 1ere a la derniere ligne
{
$id=$data_in[0]; // id unique
$info1=$data_in[1]; // information 1
$chainealphanumerique=$data_in[2]; // chaine du fichier 1
$longd=substr($chainealphanumerique,0,$tab[$y][1]); // le debut de chaine venant du fichier 1 est stockée dans une variable
$plage=$tab[$y][0] ; // on conserve une copie de la chaine de reference
$longchainealphanumerique=strlen($chainealphanumerique); // on garde un copie de la longueur de la chaine venant du fichier 1
$longt=$tab[$y][8]; // on garde une copie de la longueur de reference indiqué dans le fichier 2
$info2=$tab[$y][2]; //information 2
$info3=$tab[$y][3]; //information 3
$info4=$tab[$y][5];// information 4
$info5=$tab[$y][6];// information 5
$info6=$tab[$y][7];// information 6
if ( $longd === $plage)
{
if ( $longchainealphanumerique == $longt )
{
if ( $info1 === $info3 )
{
$data_out = array($cls, $chainealphanumerique, $info1, $info2, $info3, $info4, $info5, $info6);
//echo $data_out." </br> ";
fputcsv($out, $data_out, ';');
}
}
}
}
}
}
// fermeture de tous les fichiers
fclose($in);
fclose($out); |
Partager