<?php /* ------- Params: ------- $file = url du fichier (relatif) $critere = A ou M ou J $order = asc ou desc ------- Retour: ------- 1 ou 0 */ function classer($file, $critere, $order) { $fichier = @file($file); // si aucune ligne $count = count($fichier); if($count == 0) return false; // on enlève les \r\n finaux for($i = 0; $i < $count; $i++) $fichier[$i] = rtrim($fichier[$i]); // paramètre critère $critere = strtolower($critere); if($critere == 'a') $GLOBALS['critere'] = 0; else if($critere == 'm') $GLOBALS['critere'] = 1; else if($critere == 'j') $GLOBALS['critere'] = 2; else return 0; $order = strtolower($order); if($order == 'asc') $GLOBALS['order'] = -1; else if($order = 'desc') $GLOBALS['order'] = 1; else return 0; if(!usort($fichier, "comparer")) return 1; $sortie = implode("\r\n", $fichier); $fp = fopen($file, 'w'); if(!$fp) return 0; if(!@fputs($fp, $sortie)) return 0; @fclose($fp); return 1; } function comparer($a, $b) { $array_a = explode('-', $a); $array_b = explode('-', $b); if($array_a[$GLOBALS['critere']] == $array_b[$GLOBALS['critere']]) return 0; return ($array_a[$GLOBALS['critere']] > $array_b[$GLOBALS['critere']]) ? - $GLOBALS['order'] : $GLOBALS['order']; } echo classer('DATEID/28.txt', 'j', 'desc'); ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question