Php commande dos

Fermé
nico - 27 juil. 2002 à 10:21
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 28 juil. 2002 à 06:12
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
A voir également:

2 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
28 juil. 2002 à 05:25
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
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
28 juil. 2002 à 06:12
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