par
sadeq » 16 nov. 2005, 11:24
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);
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]
<?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");
?>
[/php]
[b]NB:[/b]
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:
[b]($data[0]?$data[0]:null) [/b]
qui veut dire : si l'index [b]0[/b] existe dans le tableau [b]$data[/b], alors ([b]?[/b]) retourner son contenu sinon ([b]:[/b]) retourner [b]null[/b].
La syntaxe générale de cette alternative utilisée généralement pour fixer une valeur selon une condition logique:
[b]CONDITION[/b][color=darkred][b] ?[/b][/color] [i]valeur_si_vraie[/i][color=darkred] [b]:[/b] [/color][i]valeur_si_fausse[/i] ;
Exemple de code où cette forme est souvent utilisée :
[php]
//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);
[/php]