dibo THQ
Nombre de messages : 61 Localisation : ici Date d'inscription : 04/02/2007
| Sujet: upload et php Jeu 8 Mar 2007 - 3:51 | |
| - Citation :
UPLOAD et PHP où comment exploiter des données extraites avec le php
Pour exploiter correctement tous les fichiers créés dans les étapes ci-dessous, on crée dans notre dossier www un dossier "upload" dans lequel seront placés tous les fichiers ci-dessous.
ecrire.php - étape 1
on va créer ici un fichier php dont la fonction est d'extraire d'un dossier nommé "photos" (contenant des images et placé dans "upload") les images qui s'y trouvent.
<? //je place le dossier "photos" dans une variable "ouvrir" $ouvrir="photos"; //j'ouvre le dossier "photos" et je place le résultat de cette ouverture dans une variable "ici" $ici=opendir($ouvrir); //tant qu'il y a qlq chose à lire ds ce dossier, je le place ds variable "rep", si ce qlq chose est // différent de . ou .. (pour mémoire, qd php va chercher le contenu //du dossier "photos" vers la racine, 2 étapes de cette recherche //st vides : il donne alors comme réponse 1 ou 2 points, selon //l'étape où il en est. La boucle if est là pr éliminer ces réponses //de notre liste). while($rep=readdir($ici)){ if($rep!="." && $rep!=".."){ echo$rep.<br>"; } } ?>
ecrire.php – étape 2
Maintenant que l'on sait comment aller chercher dans le dossier "photos" les coordonnées des images qu'il contient, on va créer une liste []avec ces coordonnées. C'est le propos de cette seconde étape. Il s'agit du même fichier php agrémenté de qlqs lignes supplémentaires permettant la création de la liste.
<? //je crée une variable "contenu" qui contient une chaîne de //caractères. Cette chaîne de caractères est celle que l'on écrit qd //on veut débuter une liste [] $contenu="liste=["; //je place le dossier "photos" dans une variable "ouvrir" $ouvrir="photos"; //et je place le résultat de cette ouverture dans une variable "ici" $ici=opendir($ouvrir); //tant qu'il y a qlq chose à lire ds ce dossier, je le place ds une variable "rep", si ce qlq chose //est différent de . ou .. while($rep)readdir($ici)){ if($rep!="." && $rep!=".."){ //je rentre de nouveaux éléments ds la variable "contenu" pr séparer //les données (pour mémoire en php contenu . équivaut à contenu + //en javascript) $contenu.="\"".$rep."\","; } } //je termine la chaîne de caractères de la variable contenu avec //des crochets, puisque le but est de créer une liste $contenu.="]"; //j'écris le contenu de la variable "contenu" sur ma page echo$contenu; ?>
ecricre.php – étape 3
Maintenant que l'on sait créer une liste avec les coordonnées des images contenues dans le dossier "photos", on va demander au php de générer un fichier texte, qui sera placé dans le dossier "upload", et écrire dans ce fichier texte la liste créée plus tôt. Il s'agit du même fichier php agrémenté de quelques lignes dédiées à ce fichier texte.
<? $contenu="liste=["; $ouvrir="photos"; $ici=opendir($ouvrir); while($rep=readdir($ici)){ if($rep!="." && $rep!=".."){ $contenu.="\"".$rep."\","; } } $contenu."]"; //je crée une variable "nouveau" ds laquelle se trouvera mon fichier //texte. Le fichier texte sera créé automatiquement par le php et //placé ds mon dossier "upload" par le php $nouveau="images.txt"; //j'ouvre "nouveau" ds 1 variable "la" et ds 1 mode d'écriture "w+" //(c'est un mode d'écriture écrasant càd que, à chq fois que je //réouvre mon fichier et rentre de nouvelles infos, les anciennes //infos sont écrasées et remplacées par les nouvelles $la=fopen($nouveau,"w+"); //j'écris ds le fichier texte ce que je viens d'ouvrir fwrite($la,$contenu); //je ferme le fichier texte fclose($la); ?>
ecrire.php – étape 4
Vous allez rire ! … maintenant que l'on sait créer automatiquement un fichier texte dans lequel on rentre la liste des images contenues dans le dossier "photos", et bien … on va faire beaucoup plus simple et ne pas se servir de ce fichier texte. On va en effet créer un fichier php directement exploitable dans un .fla.
Le principe consiste à récupérer, comme auparavant, les éléments contenus dans le dossier "photos". La nuance,c'est que l'on on va placer ceux-ci dans un .fla et, plus précisément, dans un champ de texte dynamique dt le nom de variable est "recup".
Il faut donc ouvrir Flash, créer un nouveau document que nous appellerons "diapo.fla" et, bien sûr, placé dans le dossier "upload". On crée par ailleurs dans ce .fla un clip vide dont on se servira pour y placer les images du dossier photos.
En ce qui concerne notre fichier php, le code a évolué de la manière suivante : (vous contaterez que l'on écrit dans "recup" ce qui se trouve ds la variable "contenu")
<? $contenu=""; $ouvrir="photos"; $ici=opendir($ouvrir); while($rep=readdir($ici)){ if($rep!="." && $rep!=".."){ //la variable "contenu" = la variable "contenu" + la variable "rep" $contenu.$rep.","; } } echo"recup=".$contenu; ?>
Sur la 1ère image clé de la sequence de notre fichier "diapo.fla", on rentre le code suivant :
//je charge le fichier "ecrire.php" à l'indice 0 du .fla et les données // sont envoyées par la méthode "post" loadVariablesNum("ecrire.php",0,"post"); //la méthode "onData" fera en sorte que les instructions ne se //joueront que une fois toutes les données chargées. Cette //précaution est nécessaire avec le php : en effet, sinon, étant donné //qu'il lit très vite, il jouerait les instructions avant que toutes //les données ne soient chargées _root.onData=function(){ //je crée une liste à partir des éléments contenus ds le champ de //texte "recup", en splitant à paritr des virgules tab=recup.split(","); //pr chq indice du tableau, je vais chercher ds la bibli le clip //nommé "vide", je charge l'image du dossier "photos" y //correspondant et je place celle-ci dans le clip "vide". //Je définis des positions x et y. Le tout est incrémenté comme //il se doit. for(i=0;i<tab.length-1;i++){ _root.attachMovie("vide","v"+I,i); loadMovie("photos/"+tab[i],_root["v"+i]); _root["v"+i]._y=100; _root["v"]+i ._x=125*I; } }
Cela vous a –t-il plus ? En tous cas, il s'agit, très concrètement d'exploiter php et fla conjointement et, à ce titre, cela nous intéresse directement.
| |
|