2010-09-08 8 views
0

Je suis à la recherche d'un moyen d'obtenir le répertoire liste des fichiers qui sont en dehors de l'arbre du serveur Web, par exemple je veux lister tous les fichiers et dossiers sous «/home » annuaire et les mettre dans un array (comme le fait scandir).scandir extérieur arbre web en utilisant PHP5

je peux « sudo su » à un utilisateur qui a le droit de vérifier le contenu du répertoire, mais je ne sais pas comment convertir une liste de répertoires que je pourrais obtenir d'un

exec ('ls -la /home'); 

Ou peut-être avec un bash script?

+0

Voulez-vous dire vraiment utiliser scandir() ou glob() pour rechercher des fichiers en dehors de l'arborescence de votre serveur web (ce qu'ils font déjà), ou pour accéder à des fichiers que le script PHP ne dispose pas habituellement l'autorisation d'accéder à ... .scandir ('/ home') fonctionnera parfaitement bien tant que vous avez l'autorisation d'y accéder –

+0

aucune permission. – Disco

Répondre

1

Difficile. La commande 'su' ne prend pas le mot de passe de stdin pour des raisons de sécurité, ce qui rend l'utilisation de PHP impossible.

Vous devez trouver une alternative.

La liste sera-t-elle énorme? Est-ce que ça doit être en temps réel?

Pouvez-vous modifier peut-être le crontab de cet autre utilisateur disposant d'autorisations à la liste des fichiers? Si oui, vous pouvez alors exécuter une commande qui affiche la liste des fichiers dans un fichier texte, que vous pourrez ensuite lire depuis PHP. Cron peut s'exécuter une fois par minute, mais si votre répertoire ne change pas très souvent, cela fonctionnera.

+0

trouvé une autre façon; php-cli renvoyant base64. Merci – Disco