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

Langage PHP Discussion :

affichage d'image et file_exists()


Sujet :

Langage PHP

  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 641
    Points : 66 666
    Points
    66 666
    Billets dans le blog
    1
    Par défaut affichage d'image et file_exists()
    Il s'agit d'un base article pour un catalogue.
    la ligne article dans la base contient le nom du fichier image.
    Je souhaiterais tester si le fichier existe et afficher éventuellement une image par défaut...

    le champs peut être null ou ne contenir que des espaces ou un string ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img src="../SitePics/Produits/Tn/'.((is_null($row['picVignette']) || !file_exists('../SitePics/Produits/Tn/'.$row['picVignette']))?'NoPic.png':$row['picVignette']).'" title="clickez pour agrandir" alt="'.$row['desiArticle'].'" style="height:160px; width:160px;clear:right; border:solid 1px navy;" />;
    mais il ne me mets rien suite au test je n'ai que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    src="../SitePics/Produits/Tn/	"


    merci de votre aide...

    PS: j'aurasi voulu conserver le teste sur une seule ligne et ne pas faire un if else

    Le problème survient sur le is_null() ....
    Si le champs est null il plante ... je n'ai que le alt de l'image ...

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 641
    Points : 66 666
    Points
    66 666
    Billets dans le blog
    1
    Par défaut
    Ceci focntionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="../SitePics/Produits/Tn/'.((($row['picVignette']==NULL) or !file_exists('../SitePics/Produits/Tn/'.$row['picVignette']))?'NoPic.png':$row['picVignette']).'" title="clickez pour agrandir" alt="'.$row['desiArticle'].'" style="height:160px; width:160px;clear:right; border:solid 1px navy;" />
    mais pourquoi is_null() ne retourne pas la même chose que ==NULL ???

  3. #3
    Membre averti Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Points : 316
    Points
    316
    Par défaut
    Bonjour,

    Chez moi le code que tu as fourni en 1er post fonctionne.

    Adapté pour test

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $row['picVignette']= "help.png";
    $row['desiArticle']="test.php";
     
    echo '<img src="'.((is_null($row['picVignette']) || !file_exists(''.$row['picVignette']))?'exit.png':$row['picVignette']).'" title="clickez pour agrandir" alt="'.$row['desiArticle'].'" style="height:160px; width:160px;clear:right; border:solid 1px navy;" />';

    Si je change la valeur de $row['picVignette']= "help.png"; l'affichage se fait correctement...

    si je met help2.png j'ai bien mon image exit.png qui se charge

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 641
    Points : 66 666
    Points
    66 666
    Billets dans le blog
    1
    Par défaut
    En fait c'est quand le champs est null...
    il n'a pas l'air de reconnaitre le is_null ...
    alors je passe par == NULL

    L'effet escompté est obtenu ...
    mais je reste perplexe

  5. #5
    Membre averti Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Points : 316
    Points
    316
    Par défaut
    Pas mieux...

    A priori, is_null pose des problèmes dans certains cas.

    Fonctionne avec empty

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #$row['picVignette']= "help.png";
    $row['picVignette']= "";
    $row['desiArticle']="test.php";
     
    echo ''.(empty($row['picVignette']) || !file_exists('../../images/'.$row['picVignette'])?'<img src="../../images/exit.png':'<img src="../../images/'.$row['picVignette']).'" title="clickez pour agrandir" alt="'.$row['desiArticle'].'" style="height:160px; width:160px;clear:right; border:solid 1px navy;" />';


    http://fr3.php.net/manual/fr/function.is-null.php#74025

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    is_null et l'opérateur == sont totalement différents : l'opérateur == ne contrôle pas le type de la variable donc pour PHP les valeurs FALSE, 0, 0.0, '' (chaîne vide), NULL, ... ne font qu'une. En revanche, is_null ou l'opérateur d'égalité en type et en valeur (===) permettent bien de contrôler que la valeur est NULL mais pas autre chose (FALSE, 0, ...).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX] Affichage d'images par loadMovie
    Par n_tony dans le forum Flash
    Réponses: 7
    Dernier message: 23/09/2004, 15h34
  2. XSL: pb d'affichage d'images
    Par enez dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 12/09/2004, 14h17
  3. PB affichage d'image avec IE
    Par arturo dans le forum Modules
    Réponses: 6
    Dernier message: 25/09/2003, 17h28
  4. [VB6] Affichage d'image avec qlq contraintes
    Par youri dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h44

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