Forum d'entraide PHPFrance

Venez poser vos questions PHP, MySQL, HTML, CSS, Javascript, Gestion de serveurs à la communauté PHPfrance

Vers le contenu

» Masquer les résultats de la recherche

Recherche dynamique PHPfrance

  1. Effectuez une recherche, les résultats s'afficheront dynamiquement ici.

Afficher le nom du dossier ou des sous dossiers

Répondre

:
Afin d’empêcher les inscriptions automatisées, nous vous demandons de taper les deux mots affichés dans le champ texte ci-contre.
Taille : 
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
Les BBCodes sont activés
[img] est activé
[flash] est désactivé
[url] est activé
Les smileys sont activés
Revue du sujet
   

Etendre la vue Revue du sujet: Afficher le nom du dossier ou des sous dossiers

Message par Mazarini 22 Juin 2012, 17:23

<a href="$lien ">$lien</a> ?

Message par Julien01 22 Juin 2012, 16:05

Merci !
J'ai effectué l'ajout du "global $fichier;" au debut de la fonction et le script fonctionne.
Seul problème il ne me met pas le nom de mon mon dossier, il met un point suivit d'un espace:
http://dikip.free.fr/test/test3.php

EDIT: Le script marche si je le met à l'index du FTP
Y aurait t il une solution pour qu'il fonctionne "correctement" depuis un sous dossier ?
Si non, tant pis, le script tel qu'il est va déjà beaucoup m'aider :)

Message par Mazarini 22 Juin 2012, 15:46

Ajoute "global $fichier;" au début de la fonction. Désolé pour cet oubli (cf portée des variables)

Il faut bien utiliser le même nom de fonction. C'est un appel récursif.

Message par Julien01 22 Juin 2012, 15:27

EDIT: si je ne mettait pas la même orthographe partout j'avais une erreur. Je la met si ca peux t'aider
Fatal error: Call to undefined function: lecdir() in /mnt/110/sdb/4/c/dikip/test/test3.php on line 17
(je met un second post, car en invité, on ne peut pas édité ses messages)

Message par Julien01 22 Juin 2012, 15:25

Merci,
je n'ai pas compris exactement ce qui a été fait.
tu as ajouté une fonction lectdir/lecdir, il y avait deux orthographe différents.
J'ai changé en voulant mettre partout la même orthographe et je me retrouve face à une page blanche.
Si tu pouvais m'expliquer tes modifications, ou me dire si j'ai fais une mauvaise manipulation

Encore merci
Julien

Message par Mazarini 22 Juin 2012, 14:50

Syntaxe: [ Télécharger ] [ Masquer ]
Code php
<?php

function lectdir($dir) {
   $rep = opendir($dir) or die('Erreur de listage : le répertoire n\'existe pas');
   while($element = readdir($rep)) {
           if($element != '.' && $element != '..') {
                   if (!is_dir($element)) {$fichier[] = $dir.'/'.$element;}
                   else {lecdir($dir.'/'.$element);}
           }
   }
closedir($rep);
}

$fichier= array(); // on déclare le tableau contenant le nom des fichiers
$monUrl = "http://".$_SERVER['HTTP_HOST'];
lecdir('.');
if(!empty($fichier)){
        sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
        echo "\t\t\n";
                foreach($fichier as $lien) {
                        echo "<br>[img]<a%20href=\"$monUrl/$dir_nom/$lien%20\">$monUrl/$lien</a>[/img]\n";
                }
        echo "\t\t";
 }
?>

Message par Julien01 22 Juin 2012, 14:17

Bonjour,
j'essaye de mettre en place un code PHP qui me sort tout les fichiers présent dans mon répertoire, et qui me le donne sous forme de liste.
J'ai commencé mes recherches et mon projet à l'aide de code trouver sur internet, et d'explications diverses que j'ai pu trouver.
Malheureusement un problème persiste: récupérer l'ensemble du nom du/des sous dossier ou est le script
(J'ai effectuer quelque recherche sur internet, et je n'ai sois pas compris, soit pas trouvé)

Voici le code:
Syntaxe: [ Télécharger ] [ Masquer ]
Code php
<?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
$monUrl = "http://".$_SERVER['HTTP_HOST'];

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

closedir($dir);

if(!empty($fichier)){
        sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
        echo "\t\t\n";
                foreach($fichier as $lien) {
                        echo "<br>[img]<a%20href=\"$monUrl/$dir_nom/$lien%20\">$monUrl/$lien</a>[/img]\n";
                }
        echo "\t\t";
       
 }

?>


Et si je n'ais pas été assez claire, voici en pratique: http://dikip.free.fr/test/test2.php
En fait il faudrait que /test/ apparaisse dans le lien
Et pour http://dikip.free.fr/test/test/test2.php
Que /test/test/ aparaisse.
En bref que je puisse lister le dossier, et le(s) sous dossier(s) ou est le script de manière "automatique"

Merci
Julien

Haut

  • Publicité