PHP bloque aux fins de lignes

Chamyky

Membre expert
Club iGen
11 Mars 2005
1 278
39
ehv.monespace.net
Bonjour !

Quand j'utilise fopen() pour lire un fichier (par exemple, un fichier que je créée avec TextEdit), invariablement le texte qu'il lit s'arrête à la première fin de ligne...

Ainsi si il doit lire :
Bloc de code:
Là c'est
Juste pour
Tester
Il me sortira uniquement :
Bloc de code:
Là c'est

En revanche, si je créée un fichier avec fopen, en insérant des fins de ligne grâce à "\r", quand je tente de le lire cela fonctionne... il n'arriverait donc à lire qu'un type de fins de ligne ?

J'ai cherché dans la doc PHP, sur Google, sur le MacG... rien.

Merci d'avance :) !
 
Bonjour !

Quand j'utilise fopen() pour lire un fichier (par exemple, un fichier que je créée avec TextEdit), invariablement le texte qu'il lit s'arrête à la première fin de ligne...

Ainsi si il doit lire :
Bloc de code:
Là c'est
Juste pour
Tester
Il me sortira uniquement :
Bloc de code:
Là c'est

En revanche, si je créée un fichier avec fopen, en insérant des fins de ligne grâce à "\r", quand je tente de le lire cela fonctionne... il n'arriverait donc à lire qu'un type de fins de ligne ?

J'ai cherché dans la doc PHP, sur Google, sur le MacG... rien.

Merci d'avance :) !
essaye de lire ton fichier avec file() et file_get_contents() pour voir.

C'est assez étrange comme comportement...
Tu peux nous montrer ton code ?
 
Super, ça marche avec file_get_contents ! Merci :) !

Et voici quand même une archive avec le code, et un fichier qui est lu : Voir la pièce jointe 14638
C'est vraiment le truc de base !
pourquoi tu met 999 en second argument à fopen ??!

c'est pour ça que ça plante, faut pas lui donner nawak en argument là.

Bloc de code:
$fp = fopen('testSimple.txt', 'r');
echo fgets($fp, filesize('testSimple.txt');
fclose($fp);
ça devrait marcher.


Mais bon si ça marceh avec file_get_contents c'est carrément mieux de le faire d'un seul coup ;)
 
pourquoi tu met 999 en second argument à fopen ??!

c'est pour ça que ça plante, faut pas lui donner nawak en argument là.

Bloc de code:
$fp = fopen('testSimple.txt', 'r');
echo fgets($fp, filesize('testSimple.txt');
fclose($fp);
ça devrait marcher.


Mais bon si ça marceh avec file_get_contents c'est carrément mieux de le faire d'un seul coup ;)

Hum :hein: .

Depuis que j'utilise fopen(), j'ai toujours utilisé 999 ... au début, je n'avais pas vraiment cherché, puisque ça marchait je l'ai utilisé. Et depuis, j'ai gardé l'habitude...

Eh bien, encore merci, je vais pouvoir optimiser mon code :up: !

Déjà que j'utilisais toujours fopen, même quand j'avais simplement besoin d'obtenir le contenu complet d'un fichier :rolleyes: !

Edit : Vous devriez donner des points de réputation à d'autres avant d'en offrir de nouveau à p4bl0. :mad: :D
 
Hum :hein: .

Depuis que j'utilise fopen(), j'ai toujours utilisé 999 ... au début, je n'avais pas vraiment cherché, puisque ça marchait je l'ai utilisé. Et depuis, j'ai gardé l'habitude...

Eh bien, encore merci, je vais pouvoir optimiser mon code :up: !

Déjà que j'utilisais toujours fopen, même quand j'avais simplement besoin d'obtenir le contenu complet d'un fichier :rolleyes: !

Edit : Vous devriez donner des points de réputation à d'autres avant d'en offrir de nouveau à p4bl0. :mad: :D
Ça me parraissais tellement évident que je l'ai pas vu mais :

Je croyais que tu utilisais fread pas fgets. la fonction fgets retourne la ligne courante donc c'est normal que tu n'avais que la première ligne :p

le second argument et la taille de ce qu'il faut lire si tu ne veux pas lire toute la ligne (ou tout le fichier pour fread).
 
...la fonction fgets retourne la ligne courante donc c'est normal que tu n'avais que la première ligne :p...

Arg :rateau: ... je comprend mieux maintenant :D !..

...le second argument et la taille de ce qu'il faut lire...

Ça, je sais : c'est pourquoi je mettais une grande valeur... ainsi je peux lire l'intégralité du fichier :D !

Enfin, c'est ce que je pensais :D !
 
Arg :rateau: ... je comprend mieux maintenant :D !..



Ça, je sais : c'est pourquoi je mettais une grande valeur... ainsi je peux lire l'intégralité du fichier :D !

Enfin, c'est ce que je pensais :D !
Ouais mais c'est pas con ça se fait aussi.

Mais je pensais que que tu utilisais fread et que la valeur que tu avais mise était trop petite pour lire tout le fichier (je ne connaissais pas la taille du fichier).

C'est pour ça que je te disais ça. ;)
 
Moui, mais en définitive quand on veut plus lire, la solution avec file_get_contents() est quand même plus courte & optimisée que celle avec fread... non ?
plus optimisée je peut pas te dire, j'en sais rien du tout.

Mais en tout cas c'est plus rapide à écrire, plus facile (pas de r, w, a, a+... du fopen) et ça marche bien, alors pourquoi ne pas l'utiliser ?


Moi je n'utilise plus que ça, il y a aussi file_put_contents() qui en un seul coup revient à appeler les fonctions fopen(), fwrite(), et fclose(). :)
 
Oh, il y a donc aussi l'équivalent.

Et, tu cites fwrite... je suis donc encore à côté de la plaque avec mon fputs :D ?
non ;)

la doc PHP est super, quand tu te pose une question, va sur http://fr2.php.net/la_fonction, tu t trouvera très souvent toute les réponses dont tu peut avoir besoin, et n'hésite pas à lire les commentaire en bas de pages il y a souvent des explications en plus ou des exemple d'utilisation etc...
 
non ;)

la doc PHP est super, quand tu te pose une question, va sur http://fr2.php.net/la_fonction, tu t trouvera très souvent toute les réponses dont tu peut avoir besoin, et n'hésite pas à lire les commentaire en bas de pages il y a souvent des explications en plus ou des exemple d'utilisation etc...

Ouip, je connais, mais là sur le coup je me suis dit "ah, ça recommence" :D !

Ne t'en fais pas, quand j'ai besoin d'aide sur une fonction je demande d'abord à monsieur php.net.