Page 1 sur 1

fopen, fget... afficher juste une partie du fichier

Posté : 15 janv. 2006, 16:30
par juuu
Hello,

Je débute en php, j'ai essayé et réussi ceci :

Code : Tout sélectionner

<?php $fp = fopen("monfichier.txt","r"); //lecture du fichier while (!feof($fp)) { //on parcourt toutes les lignes $page .= fgets($fp, 4096); // lecture du contenu de la ligne } echo $page; fclose($fp); ?>
ça marche bien, et il n'y a de toute façon qu'une ligne dan monfichier.txt
Le problème c'est que le résultat me donne ceci :
411|395|48

hors je voudrais afficher uniquement les numéros avant le premier |
et pas le reste...

J'espère que j'ai été assé clair et je vous remercie d'avance pour votre aide ! :)

@ très vite

Posté : 15 janv. 2006, 16:48
par DarkBlue
Hello ,

tu peux te servir de la fonction explode() et prendre la partie qui t interesse !

Posté : 15 janv. 2006, 16:50
par Cyrano
Essaye comme ceci:
<?php
$fp = fopen("monfichier.txt","r"); //lecture du fichier
while (!feof($fp))
{ //on parcourt toutes les lignes
    $page .= fgets($fp, 4096); // lecture du contenu de la ligne
}
fclose($fp);

/* On crée un tableau indexé contenant tout ce qui est entre les pipes (|) */
$contenu = explode("|", $page);
/* On affiche chaque élément trouvé */
foreach($contenu as $element)
{
    echo("<p>". $element ."</p>\n");
}
?>
Si tu ne veux que le premier, alors au lieu de la boucle foreach, fais simplement:
echo("<p>". $contenu[0] ."</p>\n");

Posté : 15 janv. 2006, 17:10
par Invité
Super ! Je vous remercie de votre aide !...

ça à l'air de marcher, mais il doit y avoir un petit bug quelque part,

car sur la page, maintenant, au lieu d'avoir :

425|409|48

J'ai ça :

425

425

425


Pourquoi il me le met 3 fois ??? :shock:

Merci bcp !

Posté : 15 janv. 2006, 17:16
par juuuu
oups désolé... j'avais pas remplacé toute la boucle foreach :P
Merci bcp et @ très vite !