Fonction Array() et variable, possible?

Fonction Array() et variable, possible? - PHP - Programmation

Marsh Posté le 06-06-2007 à 16:55:57    

Code :
  1. <?
  2. $dir = opendir("../page_eleve/" );
  3.  while($file = readdir($dir))
  4.  {
  5.   $tab = $tab." ' , ' ". $file;
  6.   }
  7.  $tab1 = " ' ".$tab." ' ";
  8.  $arr= array($tab1 );
  9.  echo $arr[3].' - '.$arr[4];;
  10. ?>


 
echo $tab1 donne :  '','.','..','test_dossier','pouet.html','index.html','test.jpg','2630.jpg','tes1.html'
 
Or quand je fais un echo de $tab1 et le met dans array().. cela marche mes echo $arr[3].'-'.$arr[6]; marche il me sort test_dossier - index.html
 
Sinon, tel que le code est présenté la. tout est dans $arr[0]
Donc , je me demandé si il vallait préciser quelque chose dans l'array().. quand c'est une variable qui est dedans.

Reply

Marsh Posté le 06-06-2007 à 16:55:57   

Reply

Marsh Posté le 06-06-2007 à 17:02:38    

Au lieu de tout séparer par une virgule, pourquoi ne pas stocker directement dans le tableau ?

 
Code :
  1. $arr[] = $file;


Message édité par FlorentG le 06-06-2007 à 17:02:44
Reply

Marsh Posté le 06-06-2007 à 17:06:18    

explode permet de transformer une chaine en tableau en utilisant un caractére donné comme séparateur : http://fr.php.net/manual/fr/function.explode.php
 
 
Petite question : vu que tu listes les fichiers d'un répertoire, pourquoi ne mets tu pas les noms de fichiers directement dans un tableau?

Code :
  1. $tab[]='toto';
  2. $tab[]='marcel';

donera un tableau dont la premiére case contiendra "toto" et la seconde "marcel".

Reply

Marsh Posté le 06-06-2007 à 17:18:26    

J'opte pour la solution a FlorentG.
 
C'est bien plus simple et plus agréable en terme de codage.


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
Reply

Marsh Posté le 06-06-2007 à 17:28:11    

Je ne met pas les nom directement des répertoire car il viendront a changer.Car ce repertoire va être incrémenté de dossier.
le but de ce tableau est de pouvoir faire une comparaison.Si le dossier existe alors on l'écrase, sinon on le creer.
 
FlorenG, $arr[] = $file;
 

Code :
  1. <?
  2.  
  3.       $dir = opendir("../page_eleve/" );
  4.      
  5.               while($file = readdir($dir))
  6.               {   
  7.  
  8.                   $arr[]=$file      ;
  9.                  
  10.               }
  11.            
  12.                      
  13.   ensuite?!? :p
  14.          
  15.              
  16.              
  17.       ?>


 
je ne vois pas bien FlorentG ce que tu m'as dis

Reply

Marsh Posté le 06-06-2007 à 17:30:30    

Ben là dans $arr tu retrouve toute ta liste des fichiers. Déclare-le avant le while :

Code :
  1. $dir = opendir("../page_eleve/" );
  2. $arr = array();
  3. while($file = readdir($dir)) {    
  4.  $arr[]=$file;
  5. }


Et tu retrouve dans chaque case un fichier.

Reply

Marsh Posté le 06-06-2007 à 18:03:59    

Merci FlorentG
 
Mais cependant ( vu que c'est une syntaxe que je connaissais pas..)
Comment comparer ,par exemple, si le fichier creer ( on va dire qu'il est stocké dans une variable $nom ) au differente entre du tableau?
 
en te remerciant!

Reply

Marsh Posté le 06-06-2007 à 18:07:30    

la fonction in_array($variable_recherchee, $tableau_ou_chercher) renvoie true ou false.
 
Attention au listing du dossier, php.net ne recommande pas ton écriture.
http://fr.php.net/manual/fr/function.readdir.php

Reply

Marsh Posté le 06-06-2007 à 18:37:54    

Merci NewsletTux.
 
cependant, $arr[], n'est pas accepter pour $tableau_ou_chercher.( cannot read )
et je ne sais pas comment lier des valeurs d'un tableau a une variable?
 
:$

Reply

Marsh Posté le 07-06-2007 à 13:45:53    

si tu suis la syntaxe de php.net, tu dois pouvoir récupérer dans un tableau tous les noms de fichiers et dossiers de ton répertoire ...
 
En améliorant un peu, tu peux ne récupérer que les fichiers :

Code :
  1. $array_files = array();
  2. if ($handle = opendir('../page_eleve/'))
  3. {
  4.    while (false !== ($file = readdir($handle)))
  5.    {
  6.       if (($file !='.') && ($file != '..') && (!is_dir($file)))
  7.       {
  8.          $array_files[] = $file;
  9.       }
  10.    }
  11. }


 
logiquement là si tu fais un :

Code :
  1. print_r($array_files);


tu as tous les fichiers.
 
Pour voir si ton nom de fichier existe dans ce tableau ensuite :

Code :
  1. if (in_array($nom_fic, $array_files))
  2. {
  3.    // $nom_fic existe dans $array_files
  4.    ...
  5. }


Message édité par NewsletTux le 07-06-2007 à 13:47:47
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed