Advertisement
freddyncalm

Ordena fecha de modificación según nombre del fichero

Jun 19th, 2013
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.80 KB | None | 0 0
  1. #!/usr/bin/php
  2. <?php
  3.  
  4. //Obtiene matriz de argumentos de la linea de comandos --dir="" y --simula="" opcionales.
  5. $argu = getopt('', array('dir::','simula::'));
  6.  
  7. if (isset($argu['dir'])) {
  8.  
  9.  if ($argu['dir'] != '') {
  10.   $direc = $argu['dir'];
  11.  
  12. //Vuelca en matriz $salida[] cada línea del comando ls con el nombre de los ficheros contenidos
  13.   exec("ls \"$direc\"", $salida);
  14. //  print_r("\n\n");
  15.  // print_r($salida);
  16.  }
  17. }
  18.  
  19. $hacer = 0;
  20. if (isset($argu['simula'])) {
  21.  
  22. //if --simula=yes
  23.  if ($argu['simula'] == 'yes') {
  24.   $hacer = 2;
  25.  } else {
  26.   $hacer = 1;
  27.  }
  28.  
  29. }
  30.  
  31. if ($hacer == 2) {
  32. print_r("\n\nSIMULA\n\n");
  33. }
  34.  
  35. // Comprueba cada linea de la matriz $salida[] en variable $filename
  36. foreach ($salida as $filename) {
  37.  //print_r($filename);
  38.  $patron = '/\s*(\d{2})\s*/u';
  39.  
  40.  if (preg_match($patron, $filename, $concuerda)) {
  41.   //print_r("\nEncontrado patron $patron");
  42.   //print_r("\n");
  43.   //print_r($concuerda[1]);
  44.   $fichero[] = $filename;
  45.   $episodio[] = $concuerda[1];
  46.  }
  47.  
  48. // print_r("\n");
  49.  
  50. }
  51.  
  52. if (array_multisort($episodio, $fichero));
  53. print_r("\n");
  54.  
  55. //print_r($fichero);
  56.  
  57. $ho = date("H");
  58. $mi = date("i");
  59. $se = date("s");
  60.  
  61. $me = date("n");
  62. $di = date("j");
  63. $an = date("Y");
  64.  
  65.  
  66. print_r("\n");
  67. $za = count($fichero);
  68. foreach ($fichero as $nombre) {
  69.  $za = $za - 1;
  70.  $mti = mktime($ho, $mi-$za, $se, $me, $di, $an);
  71. // print_r($nombre);
  72. // print_r(" ");
  73.  $fecha = date("mdHi.s", $mti);
  74. // print_r($fecha);
  75. // print_r("\n");
  76.  
  77.  $direfiche = $direc . '/' . $nombre;
  78.  
  79.  if (($hacer == 1) | ($hacer == 0)) {
  80.   print_r('$ touch -c -m -t ' . $fecha . ' "' . $direfiche . '"');
  81.   print_r("\n");
  82.   exec('touch -c -m -t ' . $fecha . ' "' . $direfiche . '"');
  83.  }
  84.  
  85.  if ($hacer == 2) {
  86.   print_r('touch -c -m -t ' . $fecha . ' "' . $direfiche . '"');
  87.   print_r("\n");
  88.  }
  89. }
  90. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement