Version complète: sur le forum Webmaster Hub : Expressions régulières > Un amateur?
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
michmuch51
Hubiens, Hubiennes, Bonsoir laugh.gif

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
CITATION
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.gif

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

Haa C'est dure hein... biggrin.gif
TheRec
Euh beaucoup vont crier au gachis, mais c'est une solution :

CODE
<?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.gif
michmuch51
IMSTP2.gif IMSTP2.gif
Monsieur est un king laugh.gif

ca marche nikel wink.gif


Merci encore je suis impressionné biggrin.gif
TheRec
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 wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.