Le 04/07/2008 12:52, j'ai écrit n'importe quoi :
function cmp($a, $b)
{
preg_match("/([0-9]+).[\r\n]*$/", $a, $ma);
preg_match("/([0-9]+).[\r\n]*$/", $b, $mb);
return $mb[1] - $ma[1]; // b - a car ordre inverse
}
$contenu = file($inputfile);
usort($contenu, 'cmp');
file_put_contents($outputfile, implode("\n", $contenu)."\n");
[...] Inversement, il faudra peut-être
adapter le "\n" au moment de la réécriture.
Mais non, justement ! Il vaut mieux garder les \r ou \n tels
qu'ils existent, et ne surtout pas en rajouter !
Donc :
function cmp($a, $b)
{
preg_match("/([0-9]+).[\r\n]*$/", $a, $ma);
preg_match("/([0-9]+).[\r\n]*$/", $b, $mb);
return $mb[1] - $ma[1]; // b - a car ordre inverse
}
$contenu = file($inputfile);
usort($contenu, 'cmp');
file_put_contents($outputfile, implode('', $contenu));
(Est-il besoin de préciser que je n'ai pas testé ?)