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 :

[PHP-JS] probleme de ' et d'accents


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Par défaut [PHP-JS] probleme de ' et d'accents
    Bonjour,

    Pour un site je dois gérer une galerie d'albums photos. Je stocke donc mes photos dans un dossier et il y a également un dossier 'small' y contenant les miniatures.
    Mon probleme est que lorsque je souhaite ouvrir une image via une fonction popup en javascript, cela fonctionne pour mes images sauf celles qui contiennent des caractères accentués ou le caractère ' .
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      echo ("<td align=\"center\"><a href=\"javascript:popup_image('".$tab_photos[1][$i]."') \">");
     
    echo('<img src="'.$tab_photos[0][$i].'"  name="'.$tab_photos[1][$i].'" alt="Image" border="0"></a></td>');
    $tab_photos[1][$i] correspondant a ma photo d'origine et $tab_photos[0][$i] à sa miniature.

    Et voici ma fonction javascript popup_image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function popup_image(lien_image){ <!-- ouvre une image dans une popup -->
    	w=open("",'image','width=400,height=400,toolbar=no,scrollbars=no,resizable=no');	
    	w.document.write("<HTML><HEAD><TITLE></TITLE></HEAD>");
    	w.document.write("<SCRIPT language=javascript>function checksize()  { if (document.images[0].complete) {  window.resizeTo(document.images[0].width+6,document.images[0].height+100); window.moveTo(1,0); window.focus();} else { setTimeout('check()',250) } }</"+"SCRIPT>");
    	w.document.write("<BODY onload='checksize()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0><IMG src='"+lien_image+"' border=0 onClick='window.close();'>");
    	w.document.write("<br/><br/><div align='center'>");
    	w.document.write("<input type='image' src='../images/fermer.gif' onClick='window.close()'>");
    	w.document.write("</div>");
    	w.document.write("");
    	w.document.write("</BODY></HTML>");
    	w.document.close();
    }
    Concernant le probleme du caractere ' le probleme vient du fait que si dans $tab_photos[0][$i] j'ai le caractere ' il va le prendre en tant que fin de ma balise et je vois pas comment changer ca.
    Pour le prebleme des accents quand je passe mon lien a la fonction javascript j'obtiens un lien différent : par exemples j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Albums/%C3%A9%C3%A8/mozilla.gif
    au lieu de ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Albums/%E9%E8/small/mozilla.gif
    Donc il doit y avoir une fonction javascript pour changer ca mais je ne la trouve pas!

    Si vous avez des idées!

  2. #2
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Déjà à la base tu aurais du prendre en compte le fait que les photos pouvaient être "mal" nommées et les renommer en virant les accents et les espaces/quotes.
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  3. #3
    Membre chevronné Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Par défaut
    salut,
    En esperant bien avoir compris ton probleme, je te suggère d'essayer de récupérer le contenu de $tab_photos[0][$i] avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    htmlentities($tab_photos[0][$i],ENT_QUOTES);
    donc la ligne serait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo('<img src="'.htmlentities($tab_photos[0][$i],ENT_QUOTES).'"  name="'.$tab_photos[1][$i].'" alt="Image" border="0"></a></td>');
    J'espere t'avoir aidé.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Par défaut
    Merci pour vos réponses mais ca ne fonctionne toujours pas.

    Le plus simple je pense ca va être de ne pas autorisé de caracteres spéciaux pour le noms des photos et albums ..

    Mais bon si vous avez des idées je suis toujours prenant!

  5. #5
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Je te propose la fonction de conversion de nom que j'avais repiqué à je ne sais plus qui.

    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
     
    /********************
    	TOUNIXNAME
    ********************/
    /**
     * Convertit un nom de fichier en nom unix
     *
     * @param $sString Str Nom du fichier d'origine
     * @return Str Nom du fichier converti
     */
    function toUnixName($sString) {
    	$string = strtolower(htmlentities($sString));
    	$string = preg_replace("/&(.)(uml);/", "$1e", $string);
    	$string = preg_replace("/&(.)(acute|cedil|circ|ring|tilde|grave);/", "$1", $string);
    	$string = trim($string);
    	$string = str_replace(" ", "_", $string);
    	$string = preg_replace("/([^a-z0-9_.]+)/", "-", html_entity_decode($string));
    	return $string;
    }
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Par défaut
    J'ai trouvé ca sur un site et ca marche bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // convertit les caracteres si ils sont pas corrects
     $dest_fichier = basename($_FILES['photo']['name']);
     $dest_fichier = strtr($dest_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
    Donc il enleve les accents et remplace les caracteres speciaux par des _

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

Discussions similaires

  1. Netbeat 6.9.1 PHP et probleme d'accent
    Par PITXOU dans le forum NetBeans
    Réponses: 2
    Dernier message: 28/09/2010, 09h44
  2. [PHP-JS] Probleme de javascript dans un code php
    Par stomerfull dans le forum Langage
    Réponses: 3
    Dernier message: 23/01/2006, 09h33
  3. Réponses: 5
    Dernier message: 12/01/2006, 15h47
  4. [PHP-JS] Probleme de javascript dans un code php
    Par stomerfull dans le forum Langage
    Réponses: 20
    Dernier message: 12/01/2006, 13h41
  5. [FLASH MX2004] [PHP/FLASH] Probleme de LoadVar
    Par dedella_al dans le forum Flash
    Réponses: 8
    Dernier message: 16/07/2004, 18h56

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