IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Test extension image


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut Test extension image
    Bonjour , dans une de mes pages j'utilise ce code pour recuperer les extension des images.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     <?php
     
    $extensions_ok_array = array('jpg', 'jpeg', 'gif', 'png');
     
    foreach (glob("img/logo.*") as $filename) {
        if (file_exists($filename) && in_array(strtolower(pathinfo($filename, PATHINFO_EXTENSION)), $extensions_ok_array)) {
            echo "<img src='".$filename."' alt='logo' id='client'  />";
        }
    }
    ?>
    J'aimerais l'intégrer au code suivant la laplace de <img class="lien" src="../'.$file.'/img/logo.jpg"> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $dirname = '../../webform';
    $dir = opendir($dirname); 
     
     
    while($file = readdir($dir)) {
    	if($file != '.' && $file != '..' && !is_dir($dirname.$file) && $file != 'css' && $file != 'js'   && $file != 'temp_webform')
    	{
    		echo '<a href="'.$dirname."/".$file.'"  style="text-decoration:none"><img class="lien" src="../'.$file.'/img/logo.jpg"></a>';
    	}
    }
     
    closedir($dir);
     
     ?>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    si je comprends bien, on doit faire tes devoirs à ta place ?

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    Je ne crois pas avoir demandé de faire a ma place mais je crois avoir demandé un conseil !

    Car j'ai déjà essayé plusieurs choses !
    Les forums sont fait pour s'entraider je crois !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Le 1er code que tu montres t'a été fourni intégralement dans cette autre discussion.

    Où est la notion de "conseil" ?
    D'ailleurs, tu ne poses même pas de question !

    Un conseil ? Réfléchis, cherche, expérimente.
    Dernière modification par Invité ; 27/01/2014 à 09h39.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    Intégralement je ne crois pas tu en a rajouter une partie dedans je suis d'accord.

    Après je me passerai bien de ce genre de commentaire !
    Celui qui veux aider aide celui qui ne veut pas ben il ne réagit pas !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Exercice :
    transforme cette ligne en utilisant un array et is_arrray(), comme dans le 1er script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	if($file != '.' && $file != '..' && !is_dir($dirname.$file) && $file != 'css' && $file != 'js'   && $file != 'temp_webform')
    Dernière modification par Invité ; 27/01/2014 à 09h37.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    Est ce que c'etait un truc du genre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
    $dirname = '../../webform';
    //ouvrir webform
    $dir = opendir($dirname);
    //extension autorisé
    $extensions_ok_array = array('jpg', 'jpeg', 'gif', 'png');
     //fichier a cacher
    $fichier_cacher = array('css','js','temp_webform','..','.',$dirname.$file);
     
    while($file = readdir($dir)) {
        //si dossier différent de dossier suivant  : 
        if(file_exists($file) && in_array($fichier_cacher))
        {
            //afficher lien  ../../webform/dossier
            echo '<a href="'.$dirname."/".$file.'"  style="text-decoration:none">' ;
            //pour chaque dossier image contenant un logo
            foreach (("img/logo.*") as $filename){
                //si logo existe avec les exetnsion autorisé
                if (file_exists($filename) && in_array(strtolower(pathinfo($filename, PATHINFO_EXTENSION)), $extensions_ok_array)){
                    //afficher l'image 
                     echo' <img class="lien" src="'.$file.'/'.$filename.'" alt="logo" id="client"></a>';
                }
            }    
        }
    }
     
    closedir($dir);
     
     ?>
    Dans le cas ici les images ne s'affichent plus et les liens sont inacessibles

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    C'est un bel effort.

    Lignes 8 et 12 incorrectes (syntaxe + logique).

    Il serait bien d'expliquer aussi clairement :
    • Ce que contient le dossier web_form,
    • ce que tu veux afficher,
    • ce que tu veux écarter.
    Dernière modification par Invité ; 28/01/2014 à 07h33.

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    LE dossier webform contient des répertoires client ainsi qu'un répertoire css et js et temp_webform :

    - ../webform/client => dispose d'un sous repertoire image : ../webform/client/img
    Dans ce repertoire img je veu recuperer le logo qui peut disposer d'une extension png, jpg ou jpeg voir gif. Cette image illustre le lien vers la page index que contient le répertoire client.

    -Les autres répertoires tel que webform/css , webform/js, webform/temp_webform sont à cacher.

    Donc en cliquant sur l'image je dois arriver sur la page webform/client/index.php

  10. #10
    Invité
    Invité(e)
    Par défaut
    Si on récapitule :
    1/ on ouvre, et parcourt le dossier "webform"
    2/ on cherche les dossiers clients : dossier -> is_dir()
    ce dossier ne dois pas être 'css','js','temp_webform','..','.' : voir !in_array()
    3/ pour chaque dossier trouvé (ici, le 1er script) :
    3a/ on ouvre, et parcourt le dossier "img"
    3b/ on cherche les images "logo.*" dont l'extension est 'jpg', 'jpeg', 'gif', 'png' : voir in_array()
    4/ on affiche l'image trouvée + lien vers la page index.php

    "Y'a plus qu'à !"

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    C'est exactement ça !

    Dans mon cas ici pour la ligne 12 je vois pas quelle syntaxe mettre en place vue que je veux exclure ces dossier qui sont dans le array !

  12. #12
    Invité
    Invité(e)
    Par défaut
    As-tu lu la doc ? (liens dans mon message précédent)
    -> is_dir()
    -> in_array()

    N.B. Là, je fais du conseil.
    Je pense que tu comprends maintenant la différence avec "écrire le code à ta place"...

    Perso, j'ai écrit ce script depuis longtemps... Mais ça ne t'aidera pas à comprendre par toi-même.

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    oui j'ai vu met dans le cas de la doc la syntaxe c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (in_array('ce que tu cherche ', $fichier_cacher)) {
        echo "'o' a été trouvé\n";
    }
    Mais dans mon cas a moi ce que je cherche c'est ce qui est en dehors de la variable fichier cacher !

    Si c'est pas sa c'est que j'ai pas compris

  14. #14
    Invité
    Invité(e)
    Par défaut
    'pas dans' se traduit par -> !in_array(...)

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    du coup je peux mettre juste ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!in_array($fichier_cacher)) {
        echo "'";
    }
    Il manque un truc avant $fichier_cacher mais comme c'est aléatoire je peux pas mettre quelque chose de fixe


    Mon code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
    $dirname = '../../webform';
    //ouvrir webform
    $dir = opendir($dirname);
    //extension autorisé
    $extensions_ok_array = array('jpg', 'jpeg', 'gif', 'png');
     //fichier a cacher
    $fichier_cacher = array('css','js','temp_webform','..','.',$dirname.$file);
     
    while($file = readdir($dir)) {
        //si dossier différent de dossier suivant  : 
        if(is_dir($file) &&  !in_array($fichier_cacher))
        {
            //afficher lien  ../../webform/dossier
            echo '<a href="'.$dirname."/".$file.'"  style="text-decoration:none">' ;
            //pour chaque dossier image contenant un logo
            foreach (("img/logo.*") as $filename){
                //si logo existe avec les exetnsion autorisé
                if (file_exists($filename) && in_array(strtolower(pathinfo($filename, PATHINFO_EXTENSION)), $extensions_ok_array)){
                    //afficher l'image 
                     echo' <img class="lien" src="'.$file.'/'.$filename.'" alt="logo" id="client"></a>';
                }
            }    
        }
    }
     
    closedir($dir);
     
     ?>
    Le resultat obtenu est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <html>
    <head></head>
    <body>
    <a style="text-decoration:none" href="../../webform/.."></a>
    <a style="text-decoration:none" href="../../webform/."></a>
    </body>
    </html>
    Donc il recupere le .. et . mais pas les fichier client et les img src
    Pour les image src il doit bugger a partir du foreach

  16. #16
    Invité
    Invité(e)
    Par défaut
    2/ on cherche les dossiers clients : dossier -> is_dir()
    ce dossier ne dois pas être 'css','js','temp_webform','..','.'
    se traduit par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        if(is_dir($file) && !in_array($file, $fichier_cacher))

  17. #17
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    J'ai déjà testé sa auparavant le resultat c'est que le body se trouve vide sans aucun lien

  18. #18
    Invité
    Invité(e)
    Par défaut
    Non, tu n'arriveras pas à me pousser à te donner le code complet...

    N.B. Puisque SEUL le dossier "img" t'intéresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(is_dir($dirname.'/'.$file.'/img') ....){
    Dernière modification par Invité ; 28/01/2014 à 10h58.

  19. #19
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    Je ne veux pas le code complet mais en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     !in_array($file,$fichier_cacher)
    Plus rien ne s'affiche et du coup plus aucun message pour déboguer.
    Pas facile quand on est apprenti quand on ne sait pas d'ou provient l'erreur.

  20. #20
    Invité
    Invité(e)
    Par défaut
    Il n'y a pas forcément d'erreur de syntaxe (ou alors, dans l'énoncé du code) :

    Il ne faut pas se tromper d'emplacement (chemin des fichiers/dossiers) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	if(is_dir($dirname.'/'.$file.'/img') && !in_array($dirname.'/'.$file, $dir_not_array)) {
    • is_dir($dirname.'/'.$file.'/img') : on teste s'il existe un dossier "img" dans le dossier "$file"
    • !in_array($dirname.'/'.$file, $dir_not_array) : "$file" ne doit pas être dans cette liste

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. variable sur extension image
    Par stefanelle dans le forum Langage
    Réponses: 2
    Dernier message: 20/10/2009, 22h56
  2. [UNIX] A propos de l'extension .IMAGE ?!?
    Par Zaltymbunk dans le forum Unix
    Réponses: 1
    Dernier message: 27/03/2009, 16h52
  3. test Url Image
    Par Alex35 dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/01/2009, 12h15
  4. [Upload] Test existance image
    Par totoche33 dans le forum Langage
    Réponses: 4
    Dernier message: 29/01/2008, 11h40
  5. test extension d'un fichier en korn shell
    Par jeje4 dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 27/03/2007, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo