Recuperer donnees fichier txt (php)

[Fermé]
Signaler
-
 free -
Bonjour,
j'ai une crée une page html tout simple qui ressemble à ça :

Nom du terminal : (champ texte)
Adresse IP: (champ texte)
Masque de sous réseau : (champ texte)
etc...


dans les champs texte je dois allé récupérer des données se trouvant dans un fichier texte. Je suis débutant en php et je vois pas comment faire le lien entre ma page html, mon code php et mon fichier texte.
Par exemple pour récupérer le nom du terminal qui se trouve a la ligne 5 de mon fichier texte comment dois-je faire?
merci d'avance pour votre aide.
@ bientôt.

4 réponses

Messages postés
1219
Date d'inscription
vendredi 29 décembre 2006
Statut
Membre
Dernière intervention
15 mars 2016
186
bonjour,

le code que j'utilise me sert à récupérer l'ensemble de mon fichier TXT. il ne le met pas en pas.

J'ai un fichier INFO.txt dans le même dossier de m'a page.
dans ce cas :
$fichier = file("INFO.txt");

si le fichier INFO.txt se trouve ans le dossier avant le dossier de m'a page:
$fichier = file("../INFO.txt");


voici le code PHP:

	<?php

$fichier = file("INFO.txt"); // Nom du fichier à afficher, son adresse de localisation
 
$total = count($fichier); // Nombre total des lignes du fichier

for($i = 0; $i < $total; $i++) 
{ // Départ de la boucle

echo $fichier[$i]; // On affiche ligne par ligne le contenu du fichier

} // Fin de la boucle

?>

Bonne journée, je ne sais pas si ça peux aider !
13
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
7
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
6 février 2015

Bonjour,
Les conseils que vous aviez donné à ced29 (en 2008...) m'intéressent beaucoup ! Si vous êtes encore sur ce forum, peut-être pouvez-vous m'aider ?

Nul en HTML et php, j'ai néanmoins essayé de créer grâce à des "Tutos", un site perso sur mon NAS Synology, avec pour objectif d'y afficher le contenu d'un fichier texte qui contient l'état des capteurs de mon tableau Domotique.

J'ai réussi grâce à des Tutos à créer une page HTML, qui se charge normalement lorsque je rentre l'adresse et le nom du fichier HTML dans mon navigateur. La page affiche un logo que j'ai créé (gce.jpg). Donc pas de problème à ce niveau là.

J'ai donc incorporé votre code php dans cette page HTML afin de lire le fichier ipx.txt qui contient 3 lignes de texte, mais malheureusement rien ne s'affiche.

En dehors de l'image de mon logo, la page reste blanche...! (A noter que le fichier "ipx.txt", se trouve à la racine du dossier Web, au même endroit que la page HTML).

Voyez-vous dans le code ci-dessous la raison de cet échec -:) ? :

Cordialement.

<meta name="description" content="Site DOMÔPAT" />

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

</body
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Domopat</title>
</head>
<p class="MenuBarActive"><img src="/images/gce.jpg" width="360" height="85" /><strong></strong><title><title>
</p>


<?php

$fichier = file("/ipx.txt"); // Nom du fichier à afficher, son adresse de localisation

$total = count($fichier); // Nombre total des lignes du fichier

for($i = 0; $i < $total; $i++)
{ // Départ de la boucle

echo $fichier[$i]; // On affiche ligne par ligne le contenu du fichier

} // Fin de la boucle

?>

</head>
</body>
</html>
>
Messages postés
7
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
6 février 2015

comment afficher le contenue de la ligne de fichier text dans un tableau et faire condition sur les espaces dans la ligne pour afficher les valeurs
Messages postés
1
Date d'inscription
dimanche 13 novembre 2011
Statut
Membre
Dernière intervention
1 mai 2013

Bonsoir,
je ne sais pas si ta résolu ton pb, mais je pense que cela vienne du fait que tu ais gardé l'extension .html pour ton fichier et tu n'est pas passé en .php

Y
aidez-moi SVP !!!
>
Messages postés
22
Date d'inscription
lundi 22 février 2010
Statut
Membre
Dernière intervention
23 mars 2010

Merci beaucoup pour la réponse très rapide et bien fournie.

Je vais essayer ça au week-end, où j'aurais plus de temps... et je te tiens au courant du résultat ! Si d'ici là tu as d'autres idées ou précisions n'hésites pas !

Cyril
>
Messages postés
22
Date d'inscription
lundi 22 février 2010
Statut
Membre
Dernière intervention
23 mars 2010

Bonjour,

Je suis très débutant en PHP, et je m'en sors pas trop...

Jusque là, soit j'arrive à sélectionner une ligne entière ou un bout de ligne, soit (voire le programme suivant) le bon élément mais de toutes les lignes !!
Mon idéal étant au final de récupérer sur ma page web le bon élément, mais d'une seule ligne du fichier .txt !

le fichier .txt en exemple de 2 lignes :
28/02/2010 ; 14:49:45 ;Point A ; Point B ;Le plus court; Int; 5.97 km;6 mn;BP31De PA à PB;100.0
28/02/2010 ; 14:49:45 ;Point C ; Point D ;Le plus court; Int; 4.51 km;10 mn;BP31De PC à PD;72.5

Le programme qui permet de prendre le 7ème élément de chaque ligne, mais qui ne me permet pas encore de le prendre sur une seule ligne de mon choix :

<?php
// le fichier
$fichier='http://www.monfichier/temps.txt';
// declaration variable $time
$time='';
// ouverture du fichier
$fp=fopen($fichier,'r');

while (!feof($fp)) {
// lecture et decoupage des lignes à chaque ;
$position=explode(";",fgets($fp,255));
// $position dans la ligne commence à zero
$time.=$position[7];
}

// fermeture du fichier
fclose($fp);
// affichage des temps
print $time.'
';
?>

Donc voilà où j'en suis, peut-être tes indications sont les meilleures, et je ne sais pas m'en servir ! En tout cas c'est assez compliqué pour moi !

Cyril
Messages postés
22
Date d'inscription
lundi 22 février 2010
Statut
Membre
Dernière intervention
23 mars 2010
1 > cchauplannaz
Bonsoir,
Ton code me semble très bien (en tout cas, le "explode" est super pratique!). Je ne suis pas sûr de bien comprendre ce que tu veux faire? Tu veux sélectionner l'élément (ici le temps $time) d'une ligne en particulier?
Exemple : tu veux récupérer l'élément 7 (time) de la ligne 2 ?! :

Actuellement, je vois 3 solutions possibles (il y en sûrement d'autres! ^^) :
1- si ton fichier txt n'est pas trop gros, tu peux utiliser la fonction 'file' utilisée plus haut dans le sujet car elle va mettre ton fichier texte dans un tableau où chaque ligne du tableau représentera une ligne de ton fichier, ce qui donne :
<?php
$num_ligne=2;
$fichier = file('temps.txt');
echo("");
$position=explode(";",$fichier[$num_ligne-1]);

$time=$position[7];
print "Le temps de la ligne ".$num_ligne." est : ".$time."<br>";
?>
-----------------------------------------------------------------------------------------------------------------------------
2- en utilisant le fopen et le while, en sélectionnant uniquement le temps de la ligne que tu veux :
<?php
$num_ligne=2;
$fichier='temps.txt';
$time='';
$fp=fopen($fichier,'r');
$i=0;

while (!feof($fp)) {
$i++;
$position=explode(";",fgets($fp,255));
if($i==$num_ligne) $time=$position[7]; //on mémorise le temps de la ligne voulue
}
fclose($fp);
print "Le temps de la ligne ".$num_ligne." est : ".$time."<br>";
?>
-----------------------------------------------------------------------------------------------------------------------------
3- en utilisant le fopen et le while pour mémoriser tous les temps dans un tableau puis afficher celui que l'on
souhaite:
<?php
$num_ligne=2;
$fichier='temps.txt';
$time=array(); // time est un tableau
$fp=fopen($fichier,'r');

while (!feof($fp)) {
$position=explode(";",fgets($fp,255));
array_push($time,$position[7]); //on récupère tous les temps dans le tableau 'time'
}
fclose($fp);
print "Le temps de la ligne ".$num_ligne." est : ".$time[$num_ligne-1]."<br>";
print_r($time);
?>

Essaye ses différents morceaux de codes si c'est bien ça que tu essayes de faire. Après tout dépend de tes besoins mais la solution 3 me paraît bien si tu veux récupérer tous les temps d'un seul coups.

Si ce n'est pas ça que tu souhaites faire, expliques plus en détails ce que tu cherches à faire! :D
Amuse-toi bien!
>
Messages postés
22
Date d'inscription
lundi 22 février 2010
Statut
Membre
Dernière intervention
23 mars 2010

C'est fantastique, ça marche à merveille !! Merci beaucoup....

Pour revenir à tes codes, j'ai testé les 3 :

Le 1er marche nickel
Le 2e marche nickel
Le 3e a un petit soucis pour moi. Il me permet bien d'afficher comme les 2 autres " Le temps de la ligne 2 est : 4 mn ", mais il m'affiche ensuite les temps de toutes les autres lignes !

Encore merci, solution 1 ou 2 c'est exactement ce que je recherchais à faire.
Au-delà, il me reste globalement tout à apprendre du PHP !!

Cyril
Messages postés
22
Date d'inscription
lundi 22 février 2010
Statut
Membre
Dernière intervention
23 mars 2010
1 > cchauplannaz
ok de rien! ;D

Pour la solution 3, j'avais rajouté l'affichage du tableau pour que tu puisses voir ce qu'il y avait dedans et donc voir tous les temps qui ont été trouvés et mémorisés. Il suffit de retirer la dernière ligne "print_r($time);" et tu n'auras plus l'affichage du tableau.

Bon courage pour la suite alors! ^^
merci de ton aide j'arrive à afficher le fichier texte ! en faite j'explique mon nouveau problème donc je rappel la forme de ma page html
Nom du terminal : (champ texte)
Adresse IP: (champ texte)
Masque de sous réseau : (champ texte)
etc ...

Je dois donc aller récupérer dans mon fichier config.txt les données qui devront s'afficher dans les champs texte

par exemple nom du terminal se trouve à la ligne 1 de mon fichier texte
la forme de mon fichier texte est :
[configuration]
nom_terminal=test
adr_ip=192.168.0.2
etc ...

ce qui m'interesse pour nom du terminal c'est donc de récupérer "test" qui se trouve à partir du 13ème caractère de la ligne 1. Dois-je faire un pointeur du coup pour chaque champs? quel serait le code php?

Quand la personne ouvrira cette page les champs seront directement remplis et via un bouton envoyer je veux pouvoir modifier l'intérieur des champs et que ça se répercute évidemment sur le fichier config.txt ,comment dois-je m'y prendre???

Une dernière question dans mon fichier txt il y a plusieurs endroits ou par exemple l'adresse ip 192.168.0.2 est présente , et il faudrait que lorsque l'on modifie le champ adresse ip par 192.168.0.6 par exemple cette valeur soit modifié partout dans le fichier txt , comment dois-je faire?

j'espère que je me suis exprimé assez clairement , désolé je galère pas mal et il me reste pas beaucoup de temps pour finir mon projet
je vous remerci d'avance
@bientot
Alors il faut lire ce fichier config et avec les valeures qui y sont dedans remplire tes champs text, mais comment je sais pas comment le faire dsl