Bonjour,
Je dispose de 2 fichiers A et B .
- fichier A avec un id numérique + id texte . L'id texte de la table A est une ancienne valeur.
- fichier B avec 2 id aux format texte. Dans le fichier B il y a l'ancien id qui figure dans la table A et le nouvel id qui ne figure pas dans la table A.
Je souhaite via un code PHP récupérer un fichier de sortie avec id numérique + id ancien texte + id nouveau texte.
Je ne souhaite pas passer par le SQL et les inner join pour la simple et bonne raison que j'ai des opérations de contrôle assez pointues à faire.
Le fichier A est quand même assez costaux on dépasse les 5 millions de lignes. Le fichier fait de 250 à 300 mo. Le fichier B est aussi volumineux entre 50 et 75 mo (soit 1 à 2 millions de lignes).
J'ai commencé à taper le code suivant pour contrôler divers paramètres des fichiers :
Code php : 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 <?php // declaration des fichiers en entrée et sortie $in1_chemin='C:\wamp\www\progs_infos_autos\ZZZ_atraiter\fic1.txt'; $in2_chemin='C:\wamp\www\progs_infos_autos\ZZZ_atraiter\fic2.txt'; //$out_chemin='' $in1 = fopen($in1_chemin, 'r'); $in2 = fopen($in2_chemin, 'r'); //$out = fopen($out_chemin, 'a+'); //existence fichier ou non if (file_exists($in1)) { // nombre de ligne dans fichier 1 $in1_contenu_fichier = fread( $in1, filesize ( $in1_chemin ) ); $nombre_ligne_in1 = substr_count( $in1, "\n" ); echo $nombre_ligne_in1; echo "Le fichier $in1_chemin existe."; } else { echo "Le fichier $in1_chemin n'existe pas."; break; } if (file_exists($in2)) { // nombre de ligne dans fichier 2 $in2_contenu_fichier = fread( $in2, filesize ( $in2_chemin ) ); $nombre_ligne_in2 = substr_count( $in2, "\n" ); echo $nombre_ligne_in2; echo "Le fichier $in2_chemin existe."; } else { echo "Le fichier $in2_chemin n'existe pas."; break; } ?>
Je me retrouve avec 2 problèmes :
- php me dit que le fichier 2 n'existe pas alors qu'il existe . Le fichier 1 lui est bien lu .
- un "allowed memory" . En somme les fichiers txt sont trop lourd pour php . Chose étonnante sur la machine en question j'ai déjà manipulé des fichiers csv beaucoup plus volumineux. De 500 mo sans problème avec la même version de PHP "5.5.12".
Merci de m'aiguiller
Partager