Diviser le contenu d'un fichier txt en trois tableau

Flo59
Invité n'ayant pas de compte PHPfrance

15 sept. 2019, 12:55

Bonjour je vous écrit ce topique car je n'arrive pas a réaliser ce que je souhaite et j’espère que grâce a votre aide ce ne sois plus le cas. Je vous explique le problème. J'ai un fichier txt contenant un fichier de configuration je récupéré l’intégralité du fichier et le mets dans un tableau. J'aimerais pouvoir mettre le nom des variables du fichier config d'en un tableau a part puis la valeur de la variable dans un autre puis les éventuelles commentaire dans un troisième. Le fichier txt ressemble a ça.

toto = 1;
toto1= 2;
toto3=3; //variable importante


Pour réaliser cela je pence faire 3 étape regarder ma chaîne de caractère caractère par caractère.
etape 1 tout ce qui est comprit entre un retour chariot et un = c'est la variable donc tableau 1
etape 2 tout ce qui est comprit entre un = et un ; c'est le résultat de la variable donc tableau 2
etape 3 tout ce qui est comprit entre un ; et un retour chariot tableau 3 c'est un commentaire

Code : Tout sélectionner

<?php $contenu = file_get_contents('test.txt'); $contenu_brut = array($contenu); $nomVariable = array(); $resulVariable = array(); $comeVariable = array(); $nombre_de_variables=0; $nombreCara = strlen($contenu); $file = fopen("test.txt", "r"); // ouvre le fichier if ($file ) // si on a bien le fichier { while (!feof($file )) //tant qu'on est pas à la fin du fichier { $ligne= fgets($file,$nombreCara); // on lit une ligne qui contien le nombre de caractere du fichier if ($contenu_brut[0] != 0x0A||0x0D) { //$contenu_brut[0] = $nomVariable; array_push($nomVariable,$contenu_brut); $nombre_de_variables++; // $nombre_de_variables = $nombre_de_variables + 1 } } } print_r ($nomVariable); fclose($file ); // ferme le fichier ?>

Merci d'avance pour votre aide si vous avez des question n’hésitez pas

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8304 Messages

20 sept. 2019, 00:20

En gros voilà comment je ferrai :
1) file_get_contents() pour récupérer le contenu du fichier texte
2) preg_match_all() avec une expression régulière pour récupérer nom de variable / valeur / commentaire en une seule fois pour chaque ligne
Voilà un exemple de regex à vérifier/adapter avec ton contenu réel : https://regex101.com/r/mYSUoL/1
3) foreach pour parcourir chaque élément récupéré
4) attribution dans tes tableaux des valeurs récupérées par ton expression régulière.
Quand tout le reste a échoué, lisez le mode d'emploi...