Lecture de fichier en php
tonio
-
Toni-o Messages postés 3 Statut Membre -
Toni-o Messages postés 3 Statut Membre -
Bonjour,
je souhaiterais savoir comment lire et récupérer des chiffres dans un fichier.
le fichier est de ce type: (12,134) (1,123) etc...
j'utilise la fonction (ereg("^\(",$Ligne) pour dire qu'il faut lire à partir de la parenthèse.
Par contre je sais pas comment dire lire puis mettre dans une variable jusqu'à la virgule puis lire et mettre dans une autre variable l'autre coordonnée jusqu'a la parenthèse. Je pensais utiliser substr("$Ligne",1,2); mais le nombre de caractère est aléatoire.
Avez vous une idée?
Merci d'avance
je souhaiterais savoir comment lire et récupérer des chiffres dans un fichier.
le fichier est de ce type: (12,134) (1,123) etc...
j'utilise la fonction (ereg("^\(",$Ligne) pour dire qu'il faut lire à partir de la parenthèse.
Par contre je sais pas comment dire lire puis mettre dans une variable jusqu'à la virgule puis lire et mettre dans une autre variable l'autre coordonnée jusqu'a la parenthèse. Je pensais utiliser substr("$Ligne",1,2); mais le nombre de caractère est aléatoire.
Avez vous une idée?
Merci d'avance
A voir également:
- Lecture de fichier en php
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
2 réponses
Bonjour,
Si tu auras toujours des chiffres et des virgules SEULEMENT, et je suppose que c'est le cas, tu peux utiliser les expressions rationnelles :
Si tu auras toujours des chiffres et des virgules SEULEMENT, et je suppose que c'est le cas, tu peux utiliser les expressions rationnelles :
// Tout d'abord tu met ton texte dans un fichier .txt que tu va ouvrir et lire
$contenuFichier = file_get_contents("ton_fichier.txt");
// L'expression rationnelle
$expressionRationnelle = "#\(([0-9\,]*)\)*#";
$resultat = Array();
preg_match_all($expressionRationnelle, $contenuFichier, $resultat, PREG_PATTERN_ORDER);
// Et enfin on affiche le résultat
echo "<pre>";
print_r($resultat);
echo "</pre>";
Toni-o
Messages postés
3
Statut
Membre
Merci pour la réponse. Pas évident à comprendre l'expression rationnelle!
si tu veux un peu plus d'explication je peux te la détailler :
$expressionRationnelle = "#\(([0-9\,]*)\)*#";
"# : indique le début de l'expression rationnelle
\( : on a une ouverture de parenthèse. Il est obligé de l'échappée, la parenthèse étant utilisée pour une fonction spéciale
[0-9\,]* : on a ensuite un/des chiffres entre 0 et 9 et/ou une/des virgules. Là encore il est obligé d'échapper la virgule qui a également une fonction spéciale quand elle est utilisée seule.
\) : et enfin on a une parenthèse qui se ferme
#" : indique la fin de l'expression rationnelle.
et pour pouvoir récupérer des valeurs précises, on met entre parenthèse ce que l'on veut avoir. Ici j'ai mis entre parenthèse [0-9\,]* parceque tu voulais récupérer les chiffres. Si tu voulais récupérer également les parenthèses par exemple tu aurais mis : "#(\([0-9\,]*\)*)#";
Voilà je ne sais pas si j'ai été très clair... Si tu veux avoir un tutoriel clair celui du site du zéro est pas mal du tout : ICI
Et pour la fonction preg_match_all() je te renvois directement vers la documentation officielle
$expressionRationnelle = "#\(([0-9\,]*)\)*#";
"# : indique le début de l'expression rationnelle
\( : on a une ouverture de parenthèse. Il est obligé de l'échappée, la parenthèse étant utilisée pour une fonction spéciale
[0-9\,]* : on a ensuite un/des chiffres entre 0 et 9 et/ou une/des virgules. Là encore il est obligé d'échapper la virgule qui a également une fonction spéciale quand elle est utilisée seule.
\) : et enfin on a une parenthèse qui se ferme
#" : indique la fin de l'expression rationnelle.
et pour pouvoir récupérer des valeurs précises, on met entre parenthèse ce que l'on veut avoir. Ici j'ai mis entre parenthèse [0-9\,]* parceque tu voulais récupérer les chiffres. Si tu voulais récupérer également les parenthèses par exemple tu aurais mis : "#(\([0-9\,]*\)*)#";
Voilà je ne sais pas si j'ai été très clair... Si tu veux avoir un tutoriel clair celui du site du zéro est pas mal du tout : ICI
Et pour la fonction preg_match_all() je te renvois directement vers la documentation officielle
Salut,
j'ai utilisé ton code et ca marche très bien.
J'ai par contre d'autres questions.
voici le fichier:
xtheo=[2.0000;2.0000;2.0000;2.0000;2.0000;2.0000;2.0000;2.0000;];
ytheo=[0.0000;0.0660;0.1684;0.2762;0.3775;0.4775;0.5800;0.6841;];
J'aimerais récupérer les nombres et les mettre dans des variables.
Par exemple: x1=2.0000 y1= 0.0000 x2=2.0000 y2=0.0660.
Voici mon code mais j'ai un problème pour récupérer les nombres et naviguer dans le tableau de valeur.
// Tout d'abord tu met ton texte dans un fichier .txt que tu va ouvrir et lire
$contenuFichier = file_get_contents("pekee.txt");
// L'expression rationnelle
$expressionRationnelle = "#(\[[0-9\.0-9;]*\])*#";
$resultat = Array();
preg_match_all($expressionRationnelle, $contenuFichier, $resultat, PREG_PATTERN_ORDER);
// Et enfin on affiche le résultat
echo "<pre>";
print_r($resultat);
echo "</pre>";
Si vous avez une idée, merci d'avance!
j'ai utilisé ton code et ca marche très bien.
J'ai par contre d'autres questions.
voici le fichier:
xtheo=[2.0000;2.0000;2.0000;2.0000;2.0000;2.0000;2.0000;2.0000;];
ytheo=[0.0000;0.0660;0.1684;0.2762;0.3775;0.4775;0.5800;0.6841;];
J'aimerais récupérer les nombres et les mettre dans des variables.
Par exemple: x1=2.0000 y1= 0.0000 x2=2.0000 y2=0.0660.
Voici mon code mais j'ai un problème pour récupérer les nombres et naviguer dans le tableau de valeur.
// Tout d'abord tu met ton texte dans un fichier .txt que tu va ouvrir et lire
$contenuFichier = file_get_contents("pekee.txt");
// L'expression rationnelle
$expressionRationnelle = "#(\[[0-9\.0-9;]*\])*#";
$resultat = Array();
preg_match_all($expressionRationnelle, $contenuFichier, $resultat, PREG_PATTERN_ORDER);
// Et enfin on affiche le résultat
echo "<pre>";
print_r($resultat);
echo "</pre>";
Si vous avez une idée, merci d'avance!