acces sur un repertoire sur le reseau a partir d'un scr php

Petit nouveau ! | 6 Messages

04 mai 2011, 10:52

Bonjour à tous

je veux accéder sur un répertoire qui contient des fichiers et je veux lister et importer les données de ceux fichiers, mais ils se trouvent sur un repertoire réseau a distance

Voilà mon code:
 <?php
        $dir = "Le lien du repertoire reseau ex: P:\\dossier\\repertoire";
        if (is_dir($dir)) {
            echo "$dir is directory <br>";
            if ($dh = opendir($dir)) {
                echo "it's opened..";
                while (($file = readdir($dh)) !== false) {
                    echo"<br><b><i>" . $file . "</i></b><br>";
                }
                closedir($dh);
            } else {
                echo "Access is denied..";
            }
        } else {
            echo "can't acces";
        }
   ?>

Alors Merci de me proposer la solution :(

ViPHP
ViPHP | 2577 Messages

04 mai 2011, 13:54

Bonjour,

Dans la doc PHP il y a un commentaire indiquant que is_dir() ne fonctionne pas avec les répertoires partagés windows.
(http://fr2.php.net/manual/en/function.is-dir.php)

Le supprimer tout simplement peut résoudre ton problème... Au fait, c'est quoi exactement ton problème ?

Petit nouveau ! | 6 Messages

04 mai 2011, 14:05

mon probleme c'est que j'arrive pas a accéder ce répertoire, je pense que c'est un problème de stream.

Moi je veux ouvrir les fichiers (.csv) pour que je puisse insérer les données dans la base de données

j'espere que j'ai expliqué un peu mieux :)

ViPHP
ViPHP | 2577 Messages

04 mai 2011, 14:50

Pas vraiment...

Le is_dir() répond toujours false ?
Le opendir() répond toujours false ?
Le readdir() ne retourne rien ?

Dans un premier temps testes ton script dans un sous-répertoire avec un chemin relatif. Ensuite avec un chemin absolu puis hors de l'arborescence du site. Evites les noms de répertoire avec des blancs ou autres caractères spéciaux.

Ton script me semble bien à première vue.

Edit : tu peux aussi utiliser scandir() (http://fr2.php.net/manual/en/function.scandir.php)

Petit nouveau ! | 6 Messages

04 mai 2011, 15:36

Dans un premier temps testes ton script dans un sous-répertoire avec un chemin relatif. Ensuite avec un chemin absolu puis hors de l'arborescence du site. Evites les noms de répertoire avec des blancs ou autres caractères spéciaux.

J'ai bien tester mon script sur un repertoire avec chemin relatif et c'est très bien marché, mais avec un chemin absolu ( repertoire qui se trouve sur le reseau ) je ne suis pas arrivé a l'accéder

ViPHP
ViPHP | 2577 Messages

04 mai 2011, 16:13

Mais qu'est ce que tu as comme message :
- $dir is directory
- it's opened..
- Access is denied..
- can't acces

Dans un premier temps, supprime le test sur is_dir() pour voir.

Egalement un petit test tiré de la doc pour voir :
<?php
for($c='A'; $c<='Z'; $c++) {
    if(is_dir($c . ':')) echo $c . ': <br>';
    if(is_dir($c . ':\\')) echo $c . ':\\ <br>';
}
?>

Nico-84-cavaillon
Invité n'ayant pas de compte PHPfrance

13 mars 2013, 11:41

Je ne suis pas expert mais "P:\\dossier\\repertoire" a bcp de chances de ne pas etre connu de php.

Peut etre qu'en essayant avec une adresse type : "//nom_du_serveur/dossier/repertoire/.." tu auras plus de chances

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 mars 2013, 00:28

le sujet n'a que deux ans :)


sinon \\ et pas // ;)

@+
Il en faut peu pour être heureux ......