Page 1 sur 1

remplacer un array par un readir

Posté : 02 nov. 2013, 15:58
par guietfa
Bonjour
Je suis débutant en php et je tente de bidouiller un site permettant de répertorier des espèces.
J'ai une première page sur laquelle j'affiche une liste d'espèce avec un lien associé à l'aide de $get. Sur cette même page, j'affiche des infos diverses et variées qui concernent l’espèce sélectionnée.
plutot que d'avoir un tableau dans lequel je dois noter la liste des espèces, je souhaiterai que cette liste se fasse automatiquement en récupérant soit les nom de fichier présent dans un dossier "identité", soit en allant chercher le nom de la variable $espece dans chacun des fichiers contenu dans le dossier.

Voici le code initial (soyez indulgent!)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Biothèque</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
<!--
.Style1 {font-size: x-large}
body {
	background-color: #FFFF99;
}
-->
</style>
		
		
</head>
<?php 
$espece_affichee = 'rj';
if (isset($_GET['espece']))
	{
$espece_affichee = $_GET['espece'];		
	}

define('AFFICHE',$espece_affichee);
function retour()
	{
		echo'<p></p>';
	}
$espece = array
	(
		'gv'=>'Grenouille verte', 
		'ra'=>'Rainette arboricole',
		'cc'=>'Crapaud commun',
		'rj'=>'Renouée du japon'
	);
$photo_espece = array
	(
		'gv'=>'<img src="../image/gv.jpg" width="180" height="120">', 
		'ra'=>'<img src="../image/ra.jpg" width="180" height="120">',
		'cc'=>'<img src="../image/cc.jpg" width="180" height="120">',
		'rj'=>'<img src="../image/rj.jpg" width="180" height="120">'
	);

?>
<body>
<?php 

?>
<table  border="2" align="center" cellspacing="2" bordercolor="#000000">
  <tr align="left" valign="top" bgcolor="#FF9933">
    <td colspan="3" bordercolor="2"><div align="center" class="Style1">R&eacute;partition de l'esp&egrave;ce <u><strong><em> <?php echo $espece[$espece_affichee]; ?></em></strong></u>  en Basse-Normandie </div></td>
  </tr>
  <tr align="left" valign="top">
    <td width="200" rowspan="2" align="center" bordercolor="2" bgcolor="#FFCC33"><p>Afficher l'espèce suivante :</p>
    <p>&nbsp;      </p>      <?php 
foreach($espece as $code_2lettres=>$en_cours)
	{
		echo '<a href="./essais_especes2.php?espece='.$code_2lettres.'" style="margin:5px 10px">'.$en_cours.'</a><p></p>';
	}
?></td>
    <td>
<?php 	
$carte="../carte/carte_".$espece_affichee.".php";
	include $carte; 
?>
    </td>
    <td align="center"width="200" rowspan="2" bgcolor="#FFCC33"><p><?php echo $photo_espece[$espece_affichee]; ?> </p>
      <p>Description de l'esp&egrave;ce :       </p></td>
  </tr>
  <tr>
    <td><p>entrer une nouvelle localisation pour l'espèce <?php echo $en_cours ?></p>
      <p align="center">&nbsp;</p>      <form name="form1" method="post" action="">
        <p align="center">Nom du lieu :
          <input type="text" name="textfield">
</p>
        <p align="center">Latitude : 
          <input type="text" name="textfield3">
          - Longitude : 
           <input type="text" name="textfield2">  
        </p>
      </form>      <p><a href="coordonnees.php" target="_blank">trouver des coordonn&eacute;es exactes </a></p>
      <p>t&eacute;l&eacute;charger le kmz </p></td>
  </tr>
  <tr align="left" valign="top" bgcolor="#FFCC33">
    <td colspan="3" bordercolor="2">&nbsp;</td>
  </tr>
</table>
</body>
</html>
et j'imaginais essayer d'associer ce code que j'ai trouver :
<?php 
$dirname = '../../pages/identite'; 
$dir = opendir($dirname); 

while($file = readdir($dir)) { 
if($file != '.' && $file != '..' && !is_dir($dirname.$file)) 
{  
$file2 = pathinfo($file, PATHINFO_FILENAME);
		 echo '- <a href="affichage.php?'.$file2.'"style="margin:5px 10px">'.$file2.'</a>'.'<br /><br />';
	}
}
closedir($dir); 
?> 

Quelqu'un peut-il m'aider?

Re: remplacer un array par un readir

Posté : 05 nov. 2013, 18:10
par moogli
salut,


qu'est ce qui ne fonctionne pas ?

il exist plusieurs façon de parcourir un répertoire.
la plus simple étant la fonction glob, la plus "complexe" le DirectoryIterator. (cf doc sur php.net)


a toi de voir ce que tu préfère.

si tu ne souhait faire cette liste qu'une seule fois utilise les sessions.

@+