Un script qui affiche une liste de liens pointant vers les

Eléphant du PHP | 355 Messages

19 nov. 2005, 20:41

Bonjour à tous :wink:

Je voudrai créer un petit script qui affiche les noms des dossiers du répertoire courant avec les liens pointant vers ses dossier, quelqu’un pourrait-il m’orienter vers un tutorial adapter ?

Mammouth du PHP | 983 Messages

19 nov. 2005, 20:47

J'ai pas de tutoriels sous la main (cherche sur google), mais je peux te conseiller d'utiliser la fonction glob().

Elle te permet de lister les fichiers selon un motif (*.txt par exemple, ou *.*).
Elle te retourne un tableau contenant les noms des fichiers. Donc tu parcours ce tableau en faisant des liens vers les fichiers.

Eléphant du PHP | 355 Messages

19 nov. 2005, 20:51

Bonjour rami et merci :wink:

Donc vous voulez dire qu'il faut que je fasse les liens manuelement aprés le listage ?

Eléphant du PHP | 355 Messages

19 nov. 2005, 20:53

Je par avec ceci:

Code : Tout sélectionner

<?php $files = glob("*.txt"); foreach ($files as $filename) { echo "$filename occupe " . filesize($filename) . " octets\n"; } ?>
Sauriez vous se que je dois faire pou qu'il n'y est que les répertoires qui soit afficher je ne trouve rien ?

eSp
Eléphant du PHP | 56 Messages

20 nov. 2005, 13:06

Salut,

Je pense que ce bout de code t'aidera beaucoup aussi, à toi de le modifier selon tes envies !
<?php 
function direcho($path) { 
	
global $filetotal, $fullsize, $totaldirs; 
if ($dir = opendir($path)) { 
  while (false !== ($file = readdir($dir))) { 
   if (is_dir($path."/".$file)) {                    //Si c'est un répertoire, on vérifie son contenu 
   if ($file != '.' && $file != '..') {            // mais on exclut les fichiers '.' ou '..' 
     echo '<li><b>' . $file . '</b></li><ul>'; 
     direcho($path."/".$file); 
     echo '</ul>'; 
     $totaldirs++; 
   } 
   } 
  else {                      //Si ce n'est pas un répertoire, on afficher simplement les fichiers avec la taille 
   $tab = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 
   $filesize = $tab . '(' . filesize ($path.'/'.$file) . ' kb)'; 
   echo '<li>' . $file . $filesize . '</li>'; 
   $fullsize = $fullsize + filesize ($path.'/'.$file); 
   $filetotal++; 
  } 
} 
closedir($dir); 
} 
} 

direcho('.'); 

$fullsize = round($fullsize / 1024 / 1024, 2); 

echo"<br><br> 
<b>Nombre total de fichiers</b> - $filetotal fichier(s)<br> 
<b>Nombre total de répertoires</b> - $totaldirs répertoire(s)<br> 
<b>Taille Totale</b> - $fullsize MB<br> 
"; 

?> 
;);)

Eléphant du PHP | 355 Messages

20 nov. 2005, 13:11

Bonjour eSp et merci beaucoup :wink:

Mias se script ne mets pas de liens.

eSp
Eléphant du PHP | 56 Messages

20 nov. 2005, 13:12

Non mais je crois pas que cela soit difficile de rajouter le petit bout de code pour le faire ! Doc je te laisse le plaisir de le faire ! :P Il faut bien que tu travailles un peu, non ?

Eléphant du PHP | 355 Messages

20 nov. 2005, 13:18

OK merci :wink:

Mammouth du PHP | 983 Messages

20 nov. 2005, 20:30

J'insiste avec ma fonction glo(), mais je la trouve vraiment plus simple, et y'a moins de lignes de codes avec:

phpdog, dans le lien donné tout à l'heure, si tu avais lu la page, tu serais tombé sur la liste des valeurs du 2ème argument de cette fonction, qui permet de changer le comportement par défaut:
<?php
$directories = glob("*",GLOB_ONLYDIR);
foreach ($directoriesas $dir) {
   echo "$dir<br>";
}
?> 
La syntaxe d'un lien HTML est la suivante:

Code : Tout sélectionner

<a href="chemin" > Lien </a>

Eléphant du PHP | 355 Messages

20 nov. 2005, 20:38

Merci beaucoup rami :wink:

Le liens affiche une page introuvable chez moi.

Quand a se script:
<?php 
$directories = glob("*",GLOB_ONLYDIR); 
foreach ($directoriesas $dir) { 
   echo "$dir<br>"; 
} 
?> 
Il affiche l'erreur suivante:

Code : Tout sélectionner

Parse error: parse error in C:\easyPHP\www\de.php on line 3

Mammouth du PHP | 1311 Messages

20 nov. 2005, 20:39

salut tu pourrais quand meme chercher un peu :evil:
<?php
$directories = glob("*",GLOB_ONLYDIR);
foreach ($directories as $dir) {
   echo "$dir<br>";
}
?>
:wink:

Eléphant du PHP | 355 Messages

20 nov. 2005, 20:48

OK, merci :wink:

Pour les liens j'ai esayer ceci:
<?php 
$directories = glob("*",GLOB_ONLYDIR); 
foreach ($directories as $dir) { 
   echo "<a href="$dir" > Lien </a><br>"; 
} 
?> 
Mais sa renvoi une erreur.

Mammouth du PHP | 983 Messages

20 nov. 2005, 20:49

Quelle erreur?

edit: ah ouais,c 'est normal tu utilises des guillemets pas comme il faut ligne 4:
<?php
$directories = glob("*",GLOB_ONLYDIR);
foreach ($directories as $dir) 
{
   echo '<a href="$dir" > Lien </a><br>';
}
?>

Eléphant du PHP | 355 Messages

20 nov. 2005, 20:54

Merci encore :wink:

Le script n'affiche plus les noms des fichier mes que le mots Liens, et quand on clique sur un lien page introuvable.

Mammouth du PHP | 983 Messages

20 nov. 2005, 21:12

Au temps pour moi:
<?php
$directories = glob("*",GLOB_ONLYDIR);
foreach ($directories as $dir)
{
   echo '<a href="'.$dir.'" > Lien </a><br>';
}
?>
Il y avait la variable $dir comprise entre des simple quotes. Elee n'était donc pas interpétée. Pour le reste, je te laisse chercher car j'ai l'impression que tu ne cherches pas à faire des choses. Tu demandes tout ;)