Dans le cadre d'un développement personnel, j'ai créé des comptes pour différents utilisateurs sur ma machine afin qu'ils puissent créer leurs pages persos. Ca fonctionne plutôt pas mal, en utilisant le répertoire par défaut public_html à la racine du compte utilisateur.
J'aimerai pouvoir dresser la liste de ces répertoires utilisateurs automatiquement, en utilisant un script php si possible, mais je n'ai pas trouvé comment procéder. En effet, l'url devient www.truc.com/~user, alors que sur mon disque dur, le répertoire physique dans lequel sont les pages html et autres scripts php est /home/user/public_html.
J'avais bien pensé à ouvrir le répertoire /home, et pour chaque entrée trouvée à cet endroit, chercher les répertoires public_html, ainsi :
pour chaque $rep dans /home
si le répertoire /home/$rep/public_html existe et est lisible
Ajouter ~$rep à la liste des utilisateurs
fsi
fpour
Mais si ceci pouvait être mis dans un cache, ce serait encore mieux... Je ne sais pas comment faire.... Merci pour vos suggestions et aides.
P.S. : le but de la manoeuvre est de proposer ces répertoires persos dans un menu html/css, et ce de manière dynamique, car à la main, ça risque d'être vite chiant.
# début de code
Posté par Bruno Muller . Évalué à 2.
(Notez que je suis pas du tout un pro de php...)
<?php
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
$dir = "/home";
$dh = opendir($dir);
while ($filename = readdir($dh)) {
$files[] = $filename;
}
closedir ($dh);
sort($files);
clearstatcache();
foreach ($files as $file) {
if (is_dir($dir."/".$file."/public_html")) {
echo "< li >< a href=\"~$file/\" >$file< /a >< /li >\n";
}
}
?>
En esperant que ça t'aide...
[^] # Re: début de code
Posté par Gyro Gearllose . Évalué à 1.
[^] # Re: début de code
Posté par Babelouest (site web personnel) . Évalué à 0.
while (false !== ($dirname=readdir($dirHandle)))
[^] # Re: début de code
Posté par Gyro Gearllose . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.