Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
787 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  include dans un array [resolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

include dans un array [resolu]

n°1087567
gihel
Posté le 18-05-2005 à 11:01:59  profilanswer
 

Bonjour :)
 
Je voudrais inclure dynamiquement le contenu d'un array, un peu comme ceci :
 

Code :
  1. $bla = array ( 1 =>
  2. include('bla.txt');
  3. );


 
et dans le bla.txt créé dynamiquement on a :
 

Code :
  1. 'blabla',
  2. 'blablabla',
  3. 'etc...',


 
Bien sur l'include casse le code et on a une erreur.
y'a t'il un moyen de faire ca correctement ?
 
Merci.


Message édité par gihel le 19-05-2005 à 13:17:30
mood
Publicité
Posté le 18-05-2005 à 11:01:59  profilanswer
 

n°1087575
cesarr89
Posté le 18-05-2005 à 11:05:47  profilanswer
 

Code :
  1. $bla = array(1=>"bla.txt", 2=>"pouet.txt" );
  2. include $bla[x];


 
 
C'est ca que tu veux ?
J'ai pas tout compris je crois

n°1087588
gihel
Posté le 18-05-2005 à 11:11:31  profilanswer
 

En fait mon bla.txt ne contient que les entrées du tableau, mais pas le code autour pour le définir.
 
Alors je voudrais, dans ma page finale de présentation, inclure les entrée dans le $bla = array(ICI)

n°1087590
cesarr89
Posté le 18-05-2005 à 11:13:28  profilanswer
 

gihel a écrit :

En fait mon bla.txt ne contient que les entrées du tableau, mais pas le code autour pour le définir.
 
Alors je voudrais, dans ma page finale de présentation, inclure les entrée dans le $bla = array(ICI)


 
 :heink:  
 
J'ai rien compris, donne un exemple c'est le mieux
 

n°1087592
GaSPaRD77
Posté le 18-05-2005 à 11:13:52  profilanswer
 

Rien compris non plus ...

n°1087593
cesarr89
Posté le 18-05-2005 à 11:14:34  profilanswer
 

GaSPaRD77 a écrit :

Rien compris non plus ...


 Ca me rassure de pas être seul  

n°1087599
gihel
Posté le 18-05-2005 à 11:20:22  profilanswer
 

en gros :
 

Code :
  1. $bla = array ( 1 =>
  2. ********ici mon bla.txt - je sais pas comment l'inclure sans casser la fonction array()****
  3. );


 
qui me donnera ce que je veux :
 

Code :
  1. $bla = array ( 1 =>
  2. 'blabla',
  3. 'blablabla',
  4. 'etc...',
  5. );

n°1087604
cesarr89
Posté le 18-05-2005 à 11:21:35  profilanswer
 

en tu veux associer à un numéro, le contenu d'un fichier?

n°1087611
gihel
Posté le 18-05-2005 à 11:27:40  profilanswer
 

Non je veux juste avoir cet array tout simple avec ses entrées.
En fait c'est juste un problème de "concaténation" de code, je sais pas comment dire ca...

n°1087615
GaSPaRD77
Posté le 18-05-2005 à 11:29:38  profilanswer
 

Comprend tjrs pas ...
 
Tu donnes un exemple où ton contenu de fichier est dans ton array, et après tu nous dis que tu veux pas associer le contenu d'un fichier au numéro...
 
Là je suis perdu ...

mood
Publicité
Posté le 18-05-2005 à 11:29:38  profilanswer
 

n°1087621
robbyone
Non pas !
Posté le 18-05-2005 à 11:33:12  profilanswer
 

Tu ouvres ton fichier bla.txt et tu récupères son contenu que tu ajouteras dans ton tableau :
(je te mets le code issu de la doc php)
 

Code :
  1. <?php
  2.   $fd = fopen ("/tmp/inputfile.txt", "r" );
  3.   while (!feof ($fd)) {
  4.     $buffer = fgets($fd, 4096);
  5.     echo $buffer;
  6.   }
  7.   fclose ($fd);
  8. ?>

n°1087628
cesarr89
Posté le 18-05-2005 à 11:36:00  profilanswer
 

GaSPaRD77 a écrit :

Comprend tjrs pas ...
 
Tu donnes un exemple où ton contenu de fichier est dans ton array, et après tu nous dis que tu veux pas associer le contenu d'un fichier au numéro...
 
Là je suis perdu ...


 
 
Moi non plus, toujours pas compris.
 

n°1087655
gihel
Posté le 18-05-2005 à 11:50:12  profilanswer
 

GaSPaRD77 a écrit :

Comprend tjrs pas ...
 
Tu donnes un exemple où ton contenu de fichier est dans ton array, et après tu nous dis que tu veux pas associer le contenu d'un fichier au numéro...
 
Là je suis perdu ...


 
Désolé j'ai sans doute mal compris alors.
Bien sur que je veux que mes entrées soient associées à un numéro, c'est le but de mon array(). Mais mon problème n'est pas là.
 
Mon fichier texte est créé dynamiquement, les lignes sont construites toujours de la même manière (voir le premier post). Comme je sais pas rajouter le  * $bla = array ( etc * autour de mes données classées dans ce fichier texte, je veux le rajouter après coup, d'où l'idée de l'include() (voir toujours le premier post) mais ca casse la fonction.

n°1087657
cesarr89
Posté le 18-05-2005 à 11:52:12  profilanswer
 

gihel a écrit :

Désolé j'ai sans doute mal compris alors.
Bien sur que je veux que mes entrées soient associées à un numéro, c'est le but de mon array(). Mais mon problème n'est pas là.
 
Mon fichier texte est créé dynamiquement, les lignes sont construites toujours de la même manière (voir le premier post). Comme je sais pas rajouter le  * $bla = array ( etc * autour de mes données classées dans ce fichier texte, je veux le rajouter après coup, d'où l'idée de l'include() (voir toujours le premier post) mais ca casse la fonction.


 
 
Lol toujours pas compris  :pt1cable:

n°1087658
gihel
Posté le 18-05-2005 à 11:54:00  profilanswer
 

robbyone a écrit :

Tu ouvres ton fichier bla.txt et tu récupères son contenu que tu ajouteras dans ton tableau :
(je te mets le code issu de la doc php)


 
Merci de me mettre sur une piste ! :)
J'avais déjà penser à quelque chose comme ca, mais le même problème se posera quand je voudrai afficher la variable echo $buffer;  ca cassera la tableau  :(
J'ai fouiné du coté de eval() mais même problème...

n°1087663
denzz
huhuuuuu ! (désolé )
Posté le 18-05-2005 à 12:00:13  profilanswer
 

il faut pas 'afficher' ta variable mais la mettre dans ton tableau ..........

n°1087667
ukyo81
Posté le 18-05-2005 à 12:03:25  profilanswer
 

Je ne sais pas si j'ai bien compris mais voici une solution :  
Il te suffit de parser ton fichier.
Tu lis d'abord ton fichier comme indiquer dans un post précédent.
ensuite tu utilises la fonction explode avec l'élément séparateur \n sur la variable qui a reçu le contenu du fichier
 
en espérant que ca puisse t'aider

n°1087681
gihel
Posté le 18-05-2005 à 12:16:24  profilanswer
 

Merci pour votre aide ! Vous l'aurez compris je n'ai que des notions de progs  :sweat:  
 

denzz a écrit :

il faut pas 'afficher' ta variable mais la mettre dans ton tableau ..........


 
Ha, ca je sais pas faire.  :(  
 

ukyo81 a écrit :

Je ne sais pas si j'ai bien compris mais voici une solution :  
Il te suffit de parser ton fichier.
Tu lis d'abord ton fichier comme indiquer dans un post précédent.
ensuite tu utilises la fonction explode avec l'élément séparateur \n sur la variable qui a reçu le contenu du fichier
 
en espérant que ca puisse t'aider


 
Merci ! Mais je pense pas que ca puisse fonctionner. Dans mon fichier j'ai plusieurs retours chariots par entrée. C'est pour classer de petits textes.

n°1087684
robbyone
Non pas !
Posté le 18-05-2005 à 12:17:13  profilanswer
 

Pour rappel, pas besoin de explode sur le retour à la ligne puisque fgets le fait tout seul.
Il stoppe en fin de ligne et en fin de fichier
 
Par ailleurs, il y d'autre méthodes pour forcer l'index d'un tableau :
 

Code :
  1. $bla[1] = $buffer;
  2. $bla[3] = $buffer;


 
Si l'indice importe peu, il suffit de commencer à 1 et d'incrémenter.
Si tu as besoin d'un ordre précis, indique-le dans une liste que tu utiliseras dans le while ...
 

Code :
  1. while()
  2. { $bla[$order[$i]] = $buffer;
  3.   $i++;
  4. }


 
D'une manière générale : ne cherche pas à ne pas casser la fonction array !
Au contraire casse là : à partir de là, tu te sentiras beaucoup mieux et plus à l'aise.  :D

n°1087690
ukyo81
Posté le 18-05-2005 à 12:24:44  profilanswer
 

robbyone a écrit :

Pour rappel, pas besoin de explode sur le retour à la ligne puisque fgets le fait tout seul.
Il stoppe en fin de ligne et en fin de fichier


 
Oui mais explode lui met directement les informations dans un tableau indexé.
 
Sinon pour le problème de plusieurs entrées avant le retour chariot, je te suggère de déterminer un élément séparateur lors de la génération de ton fichier dynamique.  

n°1087701
gihel
Posté le 18-05-2005 à 12:34:50  profilanswer
 

Ha oui je comprends.
Récupérer les données du fichier texte, les tronçonner ligne par ligne, et rentrer chaque ligne dans une entrée du tableau.
 
Sauf que mes données ne sont pas ligne par ligne. C'est pour ca que dans mon fichier texte j'ai rajouté les quotes et la virgule pour différencier chaque entrée.
 
(Oui je sais, c'est une manière très... "personnelle" de faire  :whistle:)
 
Avec une fonction utilisateur peut être ? qui me crééra mon tableau avec les entrées du fichier texte dedans ?

n°1087705
ukyo81
Posté le 18-05-2005 à 12:37:32  profilanswer
 

gihel a écrit :

Ha oui je comprends.
Récupérer les données du fichier texte, les tronçonner ligne par ligne, et rentrer chaque ligne dans une entrée du tableau.
 
Sauf que mes données ne sont pas ligne par ligne. C'est pour ca que dans mon fichier texte j'ai rajouté les quotes et la virgule pour différencier chaque entrée.
 
(Oui je sais, c'est une manière très... "personnelle" de faire  :whistle:)
 
Avec une fonction utilisateur peut être ? qui me crééra mon tableau avec les entrées du fichier texte dedans ?


 
ben tu prendles quotes et la virgule comme element sépérateur

n°1087708
gihel
Posté le 18-05-2005 à 12:39:54  profilanswer
 

ukyo81 a écrit :

Oui mais explode lui met directement les informations dans un tableau indexé.
 
Sinon pour le problème de plusieurs entrées avant le retour chariot, je te suggère de déterminer un élément séparateur lors de la génération de ton fichier dynamique.


 
Haa oui merci :)
Ca me permettrait de générer un fichier sans les quotes et la virgule, ce serait plus propre en même temps.
 
Merci à tous pour toutes ces pistes, je vais essayer de plancher là dessus :).

n°1087976
cerel
Posté le 18-05-2005 à 15:18:09  profilanswer
 

Tu dis avoir essaye l'eval, et ce dernier n'a pas fonctionne ? T'es sur ?
Parceque ce serait la methode la plus facile a metre en oeuvre :

Code :
  1. var $bla = file_get_contents("bla.txt" );
  2. var $test = eval('array('.$bla.');');
  3. print_r($test);


Le "1=>" n'est pas indispensable, a moins que tu en ai besoin pour autre chose.


Message édité par cerel le 18-05-2005 à 15:20:44
n°1088301
gihel
Posté le 18-05-2005 à 18:16:59  profilanswer
 

cerel a écrit :

Tu dis avoir essaye l'eval, et ce dernier n'a pas fonctionne ? T'es sur ?
Parceque ce serait la methode la plus facile a metre en oeuvre :

Code :
  1. var $bla = file_get_contents("bla.txt" );
  2. var $test = eval('array('.$bla.');');
  3. print_r($test);


Le "1=>" n'est pas indispensable, a moins que tu en ai besoin pour autre chose.


 
Haaa, génial, c'est ce que je voulais faire à la base.
le "1=>" j'en ai besoin oui, j'ai codé la présentation en commençant par 1 (il affiche les entrées 1 à 5, puis les suivantes etc)
J'avais mal utilisé eval()  :(
 
Sinon, je viens d'essayer ca (mon code mis en situation) :
 

Code :
  1. $bla = file_get_contents("log.txt" );
  2. $article = eval('array( 1=>'.$bla.');');
  3. echo $article[1];


 
et il ne m'affiche rien... Si j'affiche $bla tout seul ca fonctionne.
Aucun message d'erreur  :??:
 
(Je sens que je suis près du but en tout cas, merci)

n°1088976
gihel
Posté le 19-05-2005 à 12:05:01  profilanswer
 

Tel qu'est écrit mon fichier texte, le eval() est censé me donner ca :
 

Code :
  1. array( 1 => 'pommes', 'poires', 'scoubidou',);


 
Comme j'ai défini $article = eval('array etc...,  echo $article[1] doit me renvoyer pommes non ?
Là le eval() ne renvoit rien du tout.
 
Faut il utiliser une autre fonction, un return() ou autre ?
Pour récupérer le contenu de mon fichier texte j'ai utilisé file_get_contents() (merci Cerel :)). Ca a l'air de marcher puisque si j'affiche $bla (la variable qui récupère le contenu du fichier) je vois bien ce qu'il faut...
 
Je suis perdu, j'oublie surement quelque chose mais quoi ?

n°1088978
cesarr89
Posté le 19-05-2005 à 12:08:09  profilanswer
 

fait un print_r sur ton tableau et post le résultat.

n°1088984
gihel
Posté le 19-05-2005 à 12:17:02  profilanswer
 

Il ne m'affiche absolument rien justement  :(
 
Voilà exactement mon code :
 

Code :
  1. <?
  2. $bla = file_get_contents("log.txt" );
  3. $article = eval('array( 1 => '.$bla.');');
  4. print_r($article);
  5. ?>


 
et le log.txt :
 

Code :
  1. 'un deux trois',
  2. 'un deux trois',
  3. etc


 
Aucun résultat, page blanche, rien dans la source.

n°1089053
gihel
Posté le 19-05-2005 à 13:16:42  profilanswer
 

Haaaa, enfin !
J'ai bataillé, j'ai fait plein d'essais... et apparemment on ne peut pas passer le résultat du eval() dans une variable (bizarre).
 
Bref, voilà le code valide :
 

Code :
  1. <?
  2. $bla = file_get_contents("log.txt" );
  3. eval('$article = array( 1 => '.$bla.');');
  4. print_r($article);
  5. ?>


 
Merci à tous  :hello:

n°1089190
cerel
Posté le 19-05-2005 à 14:43:04  profilanswer
 

Verifie que ta derniere virgulle ne pose pas de problemes.

n°1089205
gihel
Posté le 19-05-2005 à 14:56:52  profilanswer
 

Ca pose aucun problème.
J'avais déjà fait l'essai sur un array "statique"  :jap:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  include dans un array [resolu]

 

Sujets relatifs
[RESOLU] Upload d'une image miniature sans GD[Résolu] formulaire asp et base de données access et iis
[resolu] centrage verticaleScript appelant un autre... [RESOLU]
[ActionScript] tester la fin d'un array ?Array & index
fetch_array[php dynamique]$$var ou $res[$var] ... ca marche pas[resolu mouai]
classe recursive, erreur de logique introuvable... :( [résolu ^^'][Resolu] Bug de lecture de fichier : encodage
Plus de sujets relatifs à : include dans un array [resolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR