Recoder la commande unix LS

Fermé
watarux Messages postés 266 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 30 janvier 2023 - Modifié par watarux le 28/04/2014 à 10:45
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 - 29 avril 2014 à 05:49
Bonjour, à toutes et à tous ^^, je viens soliciter votre aide et vous remercie beaucoup d'avoir lu ou de me répondre ^^

je dois recoder la commande unix LS pour un TP, mais je n'arrive pas a lui faire gérer les options courte de ls exemple ls -a -l -R -r

Je cherche sur le net mais trouve aucune pise sur le sujet e tje suis débutant en programation...

Je n'ai pas le droit d'utiliser les fonctions getopt() et scandir() je vous poste mon bout de code qui m'affiche bien ce que je recherche en tout ça il me manque juste à lui faire gerer les options !
cordialement watarux :)



<?php
function verif($file)
{

  if(is_file($file))
    {
      echo "\nFichier : ";
    }

  if(is_link($file)    )
    {
      echo "\nLien symblolique : ";
    }

  if(is_dir($file))
    {
      echo "\nDossier : ";
    }
}



function Myls($myfile = "")
{


  $opd = opendir($myfile);

  if($opd)
    {



      while($file = readdir($opd))
        {

          echo verif($file) . $file . "\n";

        }

      closedir($opd);

    }

  else
    {
      echo 'erreur';  }
    }
}



if($_SERVER['argc'] > 1)
  {

    for($i = 1; $i < $_SERVER['argc'];$i++)
      {
        echo $_SERVER['argv'][$i];

        Myls($_SERVER['argv'][$i]);
      }

  }

 else
   {
     $myfile = '.';
     Myls($myfile);
   }

?>

1 réponse

Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 103
29 avril 2014 à 05:49
Bonjour petit w@c =)

if($_SERVER['argc'] > 1)
  {

    for($i = 1; $i < $_SERVER['argc'];$i++) //c'est cool, mais ça ne marche que pour les fichiers... ;)
      {
        echo $_SERVER['argv'][$i]; 

        Myls($_SERVER['argv'][$i]); // parce qu'ici tu considère que ton argument n'est pas une option mais un fichier
      }

  }


Une solution serait donc de faire une première boucle qui isole les arguments, puis de passer deux tableaux à ton Myls : le premier contenant les fichiers, le deuxième contenant les options.
0