Un menu déroulant qui liste les fichiers du répertoire coura

Eléphant du PHP | 355 Messages

21 janv. 2006, 23:22

Bonjour Tictac et merci :wink:

Quand j mais votre code sa foire tout le code :(

Eléphant du PHP | 355 Messages

21 janv. 2006, 23:32

Comme sa sa va mieux:
<select NAME="popup" onChange="change_site();" style="background-color:#313131; color:#8000FF" size="1"> 
<option>Mes redirections locale</option>
<?php 
// Ici on masque les extenssions des fichiers:
function filename( $filename ) { 
    if (($res = strrpos($filename, '.')) !== FALSE) { 
        return substr($filename, 0, $res); 
    } else { 
        return $filename; 
    }  
} 
// Ici on masque les noms de répertoires:
function masqureptr( $masqureptr ) { 
    if (($res = strrpos($masqureptr, '/')) !== FALSE) { 
        return substr($masqureptr, 0, $res); 
    } else { 
        return $masqureptr; 
    }  
} 
// 
$directories = glob("1747_Redirections/*.*");   
foreach ($directories as $dir) { 
if ($dir != 'Objets' && $dir !='img') { 
echo '<option value='.$dir.'>'.masqureptr(filename($dir)).'</option>'; 
} 
}   
?> 
</select></form><br>
Mais se qui est masquer s'est se qu'il y a derière le / moi j veut supprimer se qu'il y a devant.

Eléphant du PHP | 355 Messages

21 janv. 2006, 23:55

Sayer j'ai piger:
function masqureptr( $masqureptr ) { 
    if (($res = strrpos($masqureptr, '/')) !== FALSE) { 
        return substr($masqureptr, 27, $res); // Ici on défini la nombres de caractères a supprimer devant le / inclu
    } else { 
        return $masqureptr; 
    }  
}

Maitenant un dernier petit souci, mon menu fonctionne trés bien sauf si je rajoute un includ() php dans le fichier, quelqu'un saurait-il coment sa se fait ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 janv. 2006, 00:23

Mais se qui est masquer s'est se qu'il y a derière le / moi j veut supprimer se qu'il y a devant.
as tu pensé à basename() qui ne garde que le nom du fichier et vire le chemin ?
Maitenant un dernier petit souci, mon menu fonctionne trés bien sauf si je rajoute un includ() php dans le fichier, quelqu'un saurait-il coment sa se fait ?
à quel endroit ? il y a 1000 raison pour que ça plante :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 355 Messages

22 janv. 2006, 00:28

Bonjour truc et merci beaucoup :wink:

Donc voici mon code complet:
<link href="../Objets/style_lunnatick.css" rel="stylesheet" type="text/css">
<body background="../Objets/imagesdir/carre.gif" bgcolor="#000000" style="margin:0px" text="#339933" link="#33FF00" vlink="#666666" alink="#666600">
<?php include ("menu.php"); ?> 
<!-- --------------------------------------------------------------------------------------------------------------------------- -->
<form NAME="menu" width="238" style="margin: 0;"> 
<select NAME="popup" onChange="change_site();" style="background-color:#313131; color:#8000FF" size="1"> 
<option>Mes redirections locale</option>
<?php 
// Ici on masque les extenssions des fichiers:
function filename( $filename ) { 
    if (($res = strrpos($filename, '.')) !== FALSE) { 
        return substr($filename, 0, $res); 
    } else { 
        return $filename; 
    }  
} 
// Ici on masque les noms de répertoires:
function masqureptr( $masqureptr ) { 
    if (($res = strrpos($masqureptr, '/')) !== FALSE) { 
        return substr($masqureptr, 27, $res); // Ici on défini la nombres de caractères a supprimer devant le / inclu
    } else { 
        return $masqureptr; 
    }  
} 
// 
$directories = glob("articles/*.*"); // On cible le répertoire des fichiers à lister
foreach ($directories as $dir) { 
if ($dir != 'Objets' && $dir !='img') { // On maques les fichiers
echo '<option value='.$dir.'>'.masqureptr(filename($dir)).'</option>'; 
} 
}   
?> 
</select></form><br>
Pouirez vous m'aider a addapter ce code avec basename ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 janv. 2006, 00:35

Donc voici mon code complet:
Oui mais ça ne nous dis pas ce qui plante :-k
Pouirez vous m'aider a addapter ce code avec basename ?

Hmm, non (en tout cas pas tout de suite) as tu regardé le lien et essayé de comprendre son fonctionnement ? fait des essaies en gardant ton code sous le coude (on ne jette pas un truc qui marche hein :wink: )

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 355 Messages

22 janv. 2006, 00:49

Merci encore :wink:

Se qui plante les liens ne fonctionnent plus.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 janv. 2006, 00:56

Se qui plante les liens ne fonctionnent plus.
Il n'y a pas de liens dans ce code :-"

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 355 Messages

22 janv. 2006, 01:04

Si s'est sa value='.$dir.' le lien.
Le code liste tout les fichiers du répertoire ciblé, puis génére dynamiquement les liens vers ses fichiers.

Eléphant du PHP | 355 Messages

22 janv. 2006, 01:07

Si non pour le basename j'ai esayer comme ceci, mais sa annule les liens:
<form NAME="menu1"style="margin: 0;">  
<select NAME="popup" onChange="change_site();" style="background-color:#313131; color:#8000FF" size="1"> 
<option>Mes outils php</option>
<?php 
$masqureptr1 = basename ($path);  
//
$directories = glob("articles/*.*");  // On cible le répertoire des fichiers à lister
foreach ($directories as $dir) { 
if ($dir != 'Objets' && $dir !='img') {  // On maques les fichiers
echo '<option value='.$dir.'>'.masqureptr1(filename1($dir)).'</option>'; 
} 
}   
?> 
</select></form><br>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 janv. 2006, 01:32

Si s'est sa value='.$dir.' le lien.
Le code liste tout les fichiers du répertoire ciblé, puis génére dynamiquement les liens vers ses fichiers.
pourquoi pas, si tu me dis que c'est un ovni moi je veux bien à condition que tu me montres :langue:

et cet include qui fait tout planter c'est celui là ?
include ("menu.php");
détaille un peu plus l'effet apreès l'inclusion, regarde le code source généré :arrow: HTML pour voir ces "liens"

Pour basename:
$masqureptr1 = basename ($path);
$path correspond à quoi ?

tu veux supprimer le chemin sur tous les liens donc il faut faire une boucle dessus et quelle est la chaine de caratères qui correspond au lien dont tu veux supprimer le chemin ? ===> $dir

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 355 Messages

22 janv. 2006, 01:39

Pour $masqureptr1 = basename ($path); je ne sai spas comment faire une boucle, ben justement ne sais pas quoi mettre a la place de $path

Laisson tomber le includ()

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 janv. 2006, 02:02

tu l'as déjà la boucle:
foreach ($directories as $dir)
et il faut passer $dir à la fonction basename()

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 355 Messages

22 janv. 2006, 02:05

Vous voulez dir eun peut comme sa:
<form NAME="menu1"style="margin: 0;">  
<select NAME="popup" onChange="change_site();" style="background-color:#313131; color:#8000FF" size="1"> 
<option>Mes outils php</option>
<?php 
$directories = glob("articles/*.*");  // On cible le répertoire des fichiers à lister
$masqureptr1 = basename ($dir);
foreach ($directories as $dir) { 
if ($dir != 'Objets' && $dir !='img') {  // On maques les fichiers
echo '<option value='.$dir.'>'.masqureptr1(filename1($dir)).'</option>'; 
} 
}   
?> 
</select></form><br>
:?:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 janv. 2006, 02:09

un peu comme ça plustôt:
<?php
$directories = glob("articles/*.*");  // On cible le répertoire des fichiers à lister
foreach ($directories as $dir) 
{
   if ($dir != 'Objets' && $dir !='img') 
   {  // On maques les fichiers
      echo '<option value='.$dir.'>'.basename ($dir).'</option>';
   }
}   
?> 
basename() remplace les fonctions maison pour la suppresion du chemin d'accès.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute