Php commande dos

nico -  
jisisv Messages postés 3678 Statut Modérateur -
salut,

je débute en php, j'aimerais faire ceci :
quand on arrive sur une page le script php fait un "dir" (je veux que ce soit la commande dos) sur la racine du serveur puis je veux que le script me renvoie le nombre de ligne où il y a écrit <REP>.

Merci d'avance

Nicolas

2 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    Très mauvais idée d'utiliser dir. Ca puera avec ton command.com et ne sera de toute
    façon pas portable sur un système non Win$
    et les lignes contenant <REP> sont spécifiques à une configuration du SHELL en
    version française

    Il y a les fonctions opendir et consorts.
    Evidemment , leur utilisation demande de pouvoir concevoir un algorithme.

    Si tu veux vraiment programmer salement essaye un truc du genre
    $handle = popen("command.com /c dir lerepertoire", "r");
    $cnt="0";

    while ($line = fgets($handle) )}
    if( eregi("<rep>" , $line ) {
    $cnt++;
    }
    }
    fclose($handle);

    Il faudrait déjà savoir quelle est la chaine à utiliser <rep> <dir> ....

    Donc , essaye de programmer proprement et de manière portable
    et pas comme chez Micro$oft....

    The software said "Requires Windows98, Win2000, or better
    So I installed Unix.
    0
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    Essaye qque chose du genre
    <?php
    $path = $argv[1] ;

    $dh = opendir($path) ;
    if(! $dh) die("Error opening $path\n");
    //print_r($dh);

    $cnt = 0;
    while ( $file = readdir($dh) ) {
    // echo $file;
    if ( is_dir( $path . $file) ) {
    $cnt++;
    }
    }

    print("$cnt files in $path\n");

    ?>

    (je travaille en ligne de commande, à toi d'affiner les tests de validité
    et de rajouter la récursivité au besoin)
    Johan Daine

    The software said "Requires Windows98, Win2000, or better
    So I installed Unix.
    0