Recoder la commande unix LS

watarux Messages postés 324 Statut Membre -  
Templier Nocturne Messages postés 9989 Statut Membre -
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);
   }

?>
A voir également:

1 réponse

Templier Nocturne Messages postés 9989 Statut Membre 1 107
 
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