Aller au contenu

Expressions régulières > Un amateur?


michmuch51

Sujets conseillés

Hubiens, Hubiennes, Bonsoir :lol:

Afin d'arrêter de me casser le crane je m'en remets à vos compétences...

J'ai un fichier texte que je peux convertir en html (avec des br en fin de ligne) qui a cette forme

0 - zéro

1 - un

2 - deux

3 - trois

4 - quatre

5 - cinq

6 - six

7 - sept

8 - huit

9 - neuf

10 - dix

11 - onze

12 - douze

.....  ceci jusqu'a l'infini

le pb est que je souhaiterai mettre cette liste dan sl'ordre décroissant :whistling:

Je sais que tout est faisable (ou presque) mais niveau des expressions régulière je ne vois pas comment envoyer l'ordre :boude:

Haa C'est dure hein... :D

Modifié par michmuch51
Lien vers le commentaire
Partager sur d’autres sites

Euh beaucoup vont crier au gachis, mais c'est une solution :

<?php
 $lines = file("source.txt");
 $lines = array_reverse($lines);
 $fh = @fopen("destination.txt","w+");
 if($fh !== false) {
   foreach ($lines as $line_num => $line) {
     fwrite($fh,$line);
   }
   fclose($fh);
 } else{
   echo "Impossible d'ouvrir le fichier de destination";
 }
?>

J'ai pas testé tous les cas, je pars du principe que ta dernière ligne se finit par un caractère de terminaison de ligne (peut importe le système d'exploitation, car la terminaison varie en fonction du système d'exploitation pour le fichiers texte...)

L'autre solution, qui utilise moins de ressources, et de lire ligne par ligne le fichier avec "fread" et d'écrire juste après avoir lu...cela prends moins de ressources mémoire. Mais j'imagine que dans ton cas, ce n'est qu'une seule fois que tu devras faire cette opération et non à chaque visiteur d'une page.

P.S. : Cette fois pas d'expression régluière, désolé si ça t'embête ;D

P.S.S : Cela m'étonnerais que tu puisse compter jusqu'à l'infinie et surtout dans un fichier texte... :wacko:

Modifié par TheRec
Lien vers le commentaire
Partager sur d’autres sites

Remarque juste la première ligne de ton fichier "après", elle contient deux éléments. Car dans ton fichier "avant", la dernière ligne "130 - cent trente" n'as pas de signe(s) de terminaison (sous linux \n , sous windows \r\n et sous mac \n\r\)...

Dans la pratique, c'est tout de même la méthode la plus sûre, il est conseillé de terminer un fichier texte par une ligne vide... enfin c'est ce que j'ai appris au fil de années ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...