listage repertoire [resolu] [PHP-XML-Flash] - PHP - Programmation
Marsh Posté le 20-08-2005 à 15:26:07
"is_dir ( string filename )"
"$file = readdir( $dir_handle )" donnera le nom du fichier, pas son nom avec le chemin d'accés.
Faudrait peut être donner le chemin complet pour qu'il le trouve le répertoire. Sinon, il cherchera dans le répertoire courant et s'il en trouve un, ca sera pas celui qu'est visé.
Sinon, optimisation :
while( false !== ( $file = readdir( $dir_handle ) ) )
est la même chôse que :
while ( $file = readdir( $dir_handle ) )
vu que "pas faux" = "vrai".
En php, une affectation de valeur dans une variable retourne un booléen (vrai tant qu'il y a eu affectation possible) en plus de l'affectation en question. Donc il n'y a aucune raison de typer ça en comparant l'opération à un booléen.
Marsh Posté le 20-08-2005 à 15:34:27
je suis pas sur d'avoir compris le debut de ta reponse...
le listage des sous repertoire fonctionne (essaye de cliquer sur le dossier 2002 par exemple)
http://mbillonlanfrey.free.fr/fecl [...] st_dir.swf
donc le path que je passe en argument est bien compris par le script PHP (il voie tous les fichiers qui sont dans le dossier 2002)
le PB c'est qu'il y a trois dossier dans 2002 (essai, truc et muche) et que ca il ne les voie pas
pour l'optimisation, c'était mon premier choix mais j'ai vue ici:
http://fr3.php.net/manual/en/function.readdir.php
This is the correct way to loop over the directory.
$
j'ai pas chérché a comprendre...
;-)
merci de ta réponse!
Marsh Posté le 20-08-2005 à 15:43:00
dans ton dossier 2002 t'as par exemple un dossier 05 et un dossier 06.
dans ton répertoire local ils y sont pas.
Si je me souvient bien, "$file = readdir( $dir_handle )" te retourneras donc "." puis ".." puis "05" puis "06".
Toi tu lui demandes si "05" est un dossier, mais si tu précises pas "2002/05" il cherchera "./05" qui n'existe pas.
Voilà ce qui merde dans ton script.
Quand aux fichiers qui sont bien repéré, c'est normal, tu compares leur nom à une chaine de caractére, vu que c'est une comparaison pour laquelle on se contrefiche de la position des fichiers sur le disque dur, c'est normal que la comparaison marche.
Marsh Posté le 20-08-2005 à 20:40:38
je suis pas sur de comprendre (je suis un peu bourré juste la maintenant) mais je crois voir...
il faudraait que je change if (is_dir($file)) { et que je le transforme en if (is_dir($path.$file)) { ou un truc du genre...
j'essaye ca demain!
merci
;-)
Marsh Posté le 20-08-2005 à 20:46:56
dans le while ait un
echo $file."<BR>";
Tu véras bien ce que ca contient. j'utilises parfois cette méthode pour débugguer mes scripts. )
Marsh Posté le 21-08-2005 à 16:07:44
ayez ca marche comme je veux!
merci bcps!
j'ai édité mon poste pour que ca puisse servire a d'autres!
une derniere question si je veux debuguer mon code sans passer par Flash, est il possible de taper genre list_dir.php?xml="mes_docs/" dans mon browser pour voir le xml dans celui ci?
je suis pas sur d'avoir été tres clair ;-)
Marsh Posté le 21-08-2005 à 16:13:32
me semble que oui
en tout cas, je vois pas pourquioi ca marcherait pas. par contre, IE a eu droit à certaines versions qui n'affichait pas les pages xml mal formaté. Pour celles là, il fallait créer une page html avec un lien pour faire un enregistrer sous et le regarder dans un autre logiciel.
Marsh Posté le 21-08-2005 à 16:43:50
ca m'a fait pensé que j'avais pas encore essayé avec IE...
pour une fois ca marche "mieux" que firefox, c.a.d qu'il affiche direct le xml alors que firefox necessite d'afficher la source
sinon ben ca marche pô list_dir.php?xml="mes_docs/"
-> que je le tape comme ca il me transforme les " en %22
-> ou que je le tape sans les guillemets list_dir.php?xml=mes_docs/
=>dans les deux cas il me renvoie le listage de la racine ("." )
je pense que c'est a cause de ca:
Code :
|
mais ca veut quand même dire que ca passe pas bien...
c'est pas bien grave je me debrouillerais pour debuguer comme je peut avec Flash
Marsh Posté le 28-08-2005 à 20:27:10
encore une question...
cette portion de code:
Code :
|
me cause des erreurs sous easyPHP (je sais c'est pas terrible d'utiliser ca mais c'est pratique pour montrer mon truc a des gens qu'on pas l'internet)
j'ai resolu le PB en faisant ca:
Code :
|
ca me semble moins propre mais comme ca resout le PB...
est ce que EasyPHP a raison et le fait de tester l'existence d'un array non déclaré de cette maniére est source d'erreur ?
a part ca si qq'un sait pourquoi list_dir.php?xml="mes_docs/" ne marche pas je suis preneur!
merci ;-)
Marsh Posté le 24-09-2005 à 10:57:37
j'ai toujours ce PB de undefined index sous easy PHP, je ne vais quand même pas faire ce pricncipe de booleen sessionexist, panoramiqueexist, etc... pour toutes les variables que j'utilise dans un code...
je sais que easyPHP c'est pas top mais j'ai pas trops le choix quand il s'agit d'aller montrer un site PHP chez un client qui n'as pas Internet...
Il doit bien exister une autre methode...
Help!
Marsh Posté le 24-09-2005 à 13:48:43
Hello, je m'immisce dans la conversation ...
- concernant tes $trucexist, j'aurait tendance à te proposer un
Code :
|
ou encore
Code :
|
tu gagnes 8 lignes et 4 variables, et passe gentillement un "error_reporting(E_ALL);" ...
et surtout, tu ne réinventes pas la roue ;p
- concernant %22, list_dir.php?xml="mes_docs/"
je comprend pas pourquoi l'idée t'es venu de mettre des guillemets ... ?
parce qu'en ce cas un "echo $_GET['xml'];" vas te donner "[guillemet]mes_docs/[guillemet]", ce qui ne risque pas de ressembler à un nom de dossier valide ...
a+
shakpana
Marsh Posté le 24-09-2005 à 15:21:19
ouais effectivement isset ressemble bien a ce que je cherche mais est ce que easyPHP m'eduque de force a faire des verifs de ce genre (alors que chez free mon script fonctionne tres bien sans ces verifications) ?
les guillemets c'est sans doute parcque inconsciemment je pensais a un string ;-)
Marsh Posté le 24-09-2005 à 16:05:11
> easyPHP m'eduque de force (...)
tu veux dire des erreurs "Notice" ?
J'utilise eror_reporting(E_ALL) en developpement, ça sert - finalement - même si des fois on l'a impression de faire plus de test d'existence de valeurs qu'autre chose, mais au final ton code est qd même plus "sûr" ... et ça permet de pas tomber dans du debuggage sauvage à la recherche d'une variable non-existente ...
Marsh Posté le 20-08-2005 à 14:43:46
j'ai fait (avec l'aide d'omega2 pour une sombre histoire de path) une interface flash pour parcourir les repertoires, et lire les medias qui y sont contenu (flv :video sous flash + mp3 et jpg).
Flash fait donc une requete a list_dir_php (avec xml="." ) a peu près de cette manière:
Le script PHP lui renvoie un xml formaté avec les differents fichiers contenu dans le dossier.
voila a quoi ressemble list_dir.php:
J'éspére avoir débroussaillé un peu pour d'autres!
Il ne reste plus qu'a bosser un peu le Flash pour recuperer les infos de this, charger les video, les mp3 et afficher les photos...
merci encore à omega2 et shakpana
Message édité par mechkurt le 24-09-2005 à 16:24:52
---------------
D3