Opendir et alias

Résolu/Fermé
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 30 juin 2010 à 01:24
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 30 juin 2010 à 10:59
Bonjour,
J'avais récement posé une question concernant les alias avec Wamp.
J'ai réussi à les faire fonctionner tout seul comme un grand.
Le but est d'utiliser cet alias pour lister les fichiers contenu dans le dossier vers lequel il pointe.
Dans mon exemple:
http://localhost/file/ pointe vers le dossier //VBOXSVR/file (sur le réseau)
J'ai repris un script trouvé sur le net pour lister les dossiers et fichiers contenu dans un dossier.
Voici le script:
<?php
$dir_nom = '.'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.'  --> ('point')
$dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant
$fichier= array(); // on déclare le tableau contenant le nom des fichiers
$dossier= array(); // on déclare le tableau contenant le nom des dossiers

while($element = readdir($dir)) {
	if($element != '.' && $element != '..') {
		if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
		else {$dossier[] = $element;}
	}
}

closedir($dir);

if(!empty($dossier)) {
	sort($dossier); // pour le tri croissant, rsort() pour le tri décroissant
	echo "Liste des dossiers accessibles dans '$dir_nom' : \n\n";
	echo "\t\t<ul>\n";
		foreach($dossier as $lien){
			echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n";
		}
	echo "\t\t</ul>";
}

if(!empty($fichier)){
	sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
	echo "Liste des fichiers/documents accessibles dans '$dir_nom' : \n\n";
	echo "\t\t<ul>\n";
		foreach($fichier as $lien) {
			echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n";
		}
	echo "\t\t</ul>";
 }
?>

J'ai donc modifier la ligne:
$dir_nom = '.';

en
$dir_nom = 'http://localhost/file/';

J'ai droit au message suivant:
Warning: opendir(http://localhost/file/) [function.opendir]: failed to open dir: not implemented in C:\wamp\www\dossier.php on line 3
Erreur de listage : le répertoire n'existe pas

Toutefois, si je test:
$dir_nom = '//VBOXSVR/file';

ça fonctionne.

N'y a t-il pas moyen d'utiliser les alias avec la fonction opendir?
J'ai fait des recherche, mais sans succès.
Merci beaucoup de votre aide.

1 réponse

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
30 juin 2010 à 10:59
A force de recherche (je ne désespère jamais), voici ce que j'ai découvert:
les alias sont un mécanisme d'apache. ils n'existent qu'au niveau des requetes HTTP (via les url) mais pas au niveau du système de fichier. 

Il n'est donc pas possible de l'exploiter comme je l'aurai voulu.
Je vais donc devoir utiliser l'adresse du dossier sur le réseau comme dans mon essai qui fonctionnait:
$dir_nom = '//VBOXSVR/file';
0