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 :

Remplacer le & commercial par son code


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Par défaut Remplacer le & commercial par son code
    Bonjour à tous,

    Je développe un site qui doit passer valide au validator W3C.

    Lorsque j'affiche sur le site des infos encodés par l'utilisateur, j'utilise une fonction que j'ai créé et qui me remplace chaque caractère spécial (accent, €,...) par son code HTML.

    Chaque caractère est comparé et modifié si besoin est :
    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
     
    $i=0;
    while ($i < strlen($contenu))
    {
    	switch($contenu[$i])
    	{
    		case "é":
    			$var_int .= "&eacute;";
    			break; 
    		case "è":
    			$var_int .= "&egrave;";
    			break; 
                    ...
            }
    $i++;
    }
    Dans cette fonction, j'aimerais également remplacer tous les "&" par "&amp;", j'ai donc ajouté ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    case "&":
         $var_int .= "&amp;";
         break;
    Mais le problème est que si ma fonction tombe sur un autre code HTML (&nbsp; ou &egrave; ou ...) il le remplace aussi et cela fait planter tout le site.

    Auriez-vous une idée de comment je pourrais remplacer ce caractère ?

    Merci d'avance !!!

  2. #2
    Membre expérimenté Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Par défaut
    Tu peux utiliser htmlspecialchars ou htmlentities je crois.

  3. #3
    Membre éclairé Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Par défaut
    Ça n'a pas l'air de fonctionner...

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Pour citer une collègue : "ça marche pas" n'est pas une réponse acceptable et ne fait pas avancer le schmilblick
    Peut-être que si tu nous disais ce que tu as fait et ce qui ne marche pas...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre éclairé Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Par défaut
    Oui, excusez-moi

    Je voulais dire qu'en lisant la description de la fonction, que ce n'est pas ce qu'il me faut...

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ah... htmlentities remplacerait ta fonction en fait...

    Sinon, tu peux faire deux tours de boucle : traiter d'abord les &, puis tous les autres.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre expérimenté Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Par défaut
    C'est peut-être moi qui ait mal expliqué ou mal compris. Mais si j'ai bien compris ce que tu veux faire, tu peux remplacer tout ton switch et ton code par htmlentities étant donné que cette fonction remplace déjà tes é par des "&eacute;" et tes & par des "&amp;".

    En fait j'ai pas réellement compris le rapport avec le W3C. Personnellement j'ai fait valider beaucoup de page au validateur W3C sans faire ce traitement.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/02/2008, 15h05
  2. Insérer caractère par son code ASCII
    Par Ange44 dans le forum Mise en forme
    Réponses: 2
    Dernier message: 10/04/2007, 13h04
  3. Réponses: 2
    Dernier message: 15/09/2006, 13h07
  4. Comment remplacer un resultat numérique par son libellé ?
    Par bds2006 dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/06/2006, 12h03
  5. [XSLT ]remplacement d un caractere par son code
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 02/09/2005, 17h26

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