Mettre une image à la place de R

Eléphanteau du PHP | 14 Messages

11 févr. 2007, 09:58

Bonjour, comment insérer une image à la place des R CA, SA, AO,... ?
si je met <img src=".."> sa m'écrit le code et m'affiche pas l'image...
        function _setPlayerDisplayName(&$playerInfo) {
        
                // Determine the player status (U = Unregistered, R = Registered, SA = Server Admin,
                // CA = Channel Admin, AO = Auto-Operator, AV = Auto-Voice, O = Operator, V = Voice)
                if (($playerInfo["userstatus"] & 4) == 4) { $playerstatus = "R"; } else { $playerstatus = 'U'; }
                if (($playerInfo["userstatus"] & 1) == 1) { $playerstatus .= " SA"; }
                if (($playerInfo["privileg"] & 1) == 1) { $playerstatus .= " CA"; }
                if (($playerInfo["privileg"] & 8) == 8) { $playerstatus .= " AO"; }
                if (($playerInfo["privileg"] & 16) == 16) { $playerstatus .= " AV"; }
                if (($playerInfo["privileg"] & 2) == 2) { $playerstatus .= " O"; }
                if (($playerInfo["privileg"] & 4) == 4) { $playerstatus .= " V"; }
                if (($playerInfo["attribute"] & 64) == 64) { $playerstatus .= " Rec"; }
                
                // Determine the player attributes to be listed behind the player status (WV = Want Voice)
                if (($playerInfo["attribute"] & 2) == 2) { $playerattributes = ' WV'; } else { $playerattributes = ''; }
                
                $playerInfo["displayname"] = $playerInfo["playername"] . " (" . $playerstatus . ")" . $playerattributes;
        }
Résultat:
Image

Si vous voulez le fichier en entier ou il y à le code : Télécharger

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 févr. 2007, 11:59

Ton problème vient du fait que tu fais un htmlspecialchars() sur ta chaine pour convertir les caractères spéciaux en entités html (et donc < est converti en <, du coup il n'interprête plus cela comme une image.

Ligne 471
echo(str_replace(" ", "&nbsp;", htmlspecialchars($playerInfo["displayname"])));
Vire donc le specialchars de cette ligne et utilise le dans ta fonction uniquement sur la partie qui en a éventuellement besoin, c'est à dire $playerInfo (puisque tu ne contrôle pas son contenu, tandis que tu génères toi même $playerstatus et $playerattributes, tu dois pouvoir en maitriser le contenu :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 14 Messages

11 févr. 2007, 12:56

hmm j'ais retiré ceci, si je met la balise <b>R</b> sa fonctionne très bien.
mais si je met : <img src="images/corps/mn-ts.jpg"> sa ne m'affiche rien...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 févr. 2007, 14:38

Regarde le code source généré... je pense que tu as le même problème à cause du str_replace :

<img src="images/corps/mn-ts.jpg">
devient
<img&nbsp;src="images/corps/mn-ts.jpg">

et du coup ne fonctionne plus... :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 14 Messages

11 févr. 2007, 15:03

ok c'est bien sa, et comment je résou ce problème ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 févr. 2007, 11:47

Si ta question est résolue, tu peux ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution
en cliquant sur le bouton Image en haut à gauche de ce sujet. :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 14 Messages

12 févr. 2007, 12:31

ce n'est pas résolue, j'aimerais savoir comment faire pour avoir l'adresse de l'image de cette facon <img src="images/corps/mn-ts.jpg"> et non <img&nbsp;src="images/corps/mn-ts.jpg"> ... ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 févr. 2007, 13:03

Ben exactement de la même manière que pour ton htmlspecialchars() :)

Au lieu de le faire sur toute la chaine pour l'afficher, tu le fais dans ta fonction, uniquement sur les parties de ta chaine qui en ont besoin... (et donc pas l'image)

Tu peux aussi le virer complètement et simplement ajouter les tags html <nobr></nobr> autour du code pour forcer le navigateur à ne pas mettre de retour à la ligne :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 14 Messages

12 févr. 2007, 14:02

oki c'est bon merci beaucoup ;)