Page 1 sur 1

recuperation de variable dans un fichier texte

Posté : 15 nov. 2005, 13:54
par krakra4
Bnjour,

j'ai crée un fichier texte -qui a l'apparence
nom,prenom,adresse,ville,cp,pays
mon probleme c pour recuperer les données - non pas de facon lineaire avec la fonction
$page .= fgets($fp, 4096); // lecture du contenu de la ligne
mais je voudrais recuperer les données de facon individuelle pour pouvoir les placé dans une page a un emplacement predefini.

j'ai regardé dans google mais rien tous les tutos sont pour des recuperations par ligne et non pas par variables.

merci pour votre aide

Posté : 15 nov. 2005, 14:36
par Genius
Si j'ai bien compris le probleme, tu peux essayer de faire comme ca:
$d = fgets($fp, 4096); // lecture du contenu de la ligne 
$data = explode(',',$d);
$page .= "Nom: ".$data[0]."<br>";
$page .= "Prenome: ".$data[1]."<br>";
//etc.

Posté : 15 nov. 2005, 14:37
par pitt
Si j'ai bien compris tu dois récupérer les données contenues dans le fichier texte.

Je pense que tu peux utiliser
$page .= fgets($fp, 4096); // lecture du contenu de la ligne
Et ensuite faire
$donnees=explode($page,",");
Ce qui te donnera un tableau contenant
à l'indice 0 le nom
à l'indice 1 le prénom
.....

J'éspère avoir bien compris ton problème

Posté : 15 nov. 2005, 14:39
par pitt
oups
$donnees=explode(',',$page);

re

Posté : 15 nov. 2005, 14:43
par krakra4
merci - bcp

re

Posté : 16 nov. 2005, 04:53
par krakra4
Bonjoour,

désolé mais cela ne fonctionne pô :(

j'ai une page blanche - il doit y avoir une erreur dans mon script.
<?
$fp = fopen("data.txt","r"); 
$page .= fgets($fp, 4096); // lecture du contenu de la ligne 
$data=explode(',',$page); 
$page .= "nom : ".$data[0]."<br>"; 

$page .= " prenom : ".$data[1]." - "; 
 
$page .= " adresse: ".$data[2]." - "; 

$page .= " ville : ".$data[3]." - "; 

fclose($fp);       
?> 
il n'y a rien ki s'affiche.

merci encore

Posté : 16 nov. 2005, 09:34
par Cyrano
Je ne vois pas l'instruction qui indique qu'il faille afficher quoique ce soit: je viens de faire un test sur la base de con code, mais j'ai du corriger une erreur et, en ajoutant simplement la ligne nécessaire, ça fonctionne très bien:
<?php
/* On ouvre le fichier */
$fp = fopen("data.txt","r");
/* On récupère le contenu du fichier */
$page = fgets($fp, 4096); // lecture du contenu de la ligne
/* On sépare les informations */
$data=explode(',',$page);
/* On met en forme les informations récupérées */
$contenu = "Nom : ".$data[0]." ";
$contenu .= " Prénom : ".$data[1]."<br />\n";
$contenu .= " Adresse: ".$data[2]." - ";
$contenu .= " Ville : ".$data[3]." - ";
$contenu .= " Pays : ".$data[3]."";
/* On ferme le fichier */
fclose($fp);
/* On affiche les données mises en forme. */
echo("<p>". $contenu ."</p>\n");
?>

re,

Posté : 16 nov. 2005, 09:53
par krakra4
tu es benni par le dieu du php.

Merci au grand maitre.

:lol: :lol: :lol: :lol:

re,

Posté : 16 nov. 2005, 10:23
par krakra4
merci cela fonctionne.

mais dans le cas ou ds mon fichier texte il y deux ligne. comment lui faire avancer a la ligne du dessous.

:oops:

merci

Posté : 16 nov. 2005, 11:24
par sadeq
tu peux lire tous le fichier directement dans un tableau et en suite décomposer les lignes lues comme t'ont montré les dieux du php.

C'est la fonction file("nom_du_fichier") qui lit tous le fichier d'un coups et te retourne son contenu dans un tableau.

Le code repris de celui de Cyrano :
<?php 
/* On lit le fichier */ 
$fichier = file("data.txt");  //Extraire tous le fichier d'un coups

/* On parcourt le contenu du fichier */ 
$contenu = "<h3>Contenu du fichier</h3><HR>";
if ($fichier)
 foreach ($fichier as $ligne) {
     /* On sépare les informations */ 
    $data=explode(',', $ligne); 
    /* On met en forme les informations récupérées */ 
    $contenu .= " Nom : ".($data[0]?$data[0]:null)."<br />"; 
    $contenu .= " Prénom : ".($data[1]?$data[1]:null)."<br />"; 
    $contenu .= " Adresse: ".($data[2]?$data[2]:null)." <br />"; 
    $contenu .= " Ville : ".($data[3]?$data[3]:null)."<br />"; 
    $contenu .= " Pays : ".($data[4]?$data[4]:null)."<br /><br />"; 
    /* On passe à la ligne suivante */ 
 }

/* On affiche les données mises en forme. */ 
echo("<p>". $contenu ."</p>\n"); 
?>
NB:
Pour éviter l'erreur relative à un index de tableau non trouvé, il est recommandé de tester si l'index existe avant d'en extraire la valeur. Surtout si le tableau est construit automatiquement à partir d'une source externe.

Dans le programme ce test est réalisé par l'alternative:
($data[0]?$data[0]:null)
qui veut dire : si l'index 0 existe dans le tableau $data, alors (?) retourner son contenu sinon (:) retourner null.

La syntaxe générale de cette alternative utilisée généralement pour fixer une valeur selon une condition logique:
CONDITION ? valeur_si_vraie : valeur_si_fausse ;

Exemple de code où cette forme est souvent utilisée :
//Le candidat est admis si sa note est >=10
$résultat_concours = $note >=10 ? "ADMIS" : "NON ADMIS";

//La valeur du paramètre login est égale au login s'il est posté sinon à null
$login = $_POST["login"] ? $_POST["login"] : null;

//On affiche un vide à la place d'un zéro
echo ($valeur == 0 ? "" : $valeur); 


re,

Posté : 16 nov. 2005, 11:47
par krakra4
thks

merci bcp.