Version complète: sur le forum Webmaster Hub : caractère euro, en html.
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Anonymus
Comment peut on passer de € à € ??

Merci d'avance.
Dan
Tu veux parler du token € ?
Anonymus
Non, j'ai réédité. Je n'avais pas controlé, là, ca s'affiche correctement.

Donc, comment passer de € à .. [voir plus haut] ?

Merci.
Dudu
CODE
header('Content-Type: text/html; charset=UTF-8');


Y'a que çà de vrai biggrin.gif À quoi bon s'embêter avec les entités html ? wink.gif
Anonymus
J'y avais pensé, mais.. ca m'oblige à modifier tout le reste, et... Y'en a un paquet sad.gif
Dudu
Ben non huh.gif (ou alors je m'embrouille les pinceaux). En UTF-8, é s'affichera quand même bien é.
Donc tu peux garder à la fois tes entités + tes caractères spéciaux/accentués tels quels.

PS: d'ailleurs je voulais te changer tout çà, quand je bossais en local. Depuis que je connais l'UTF-8 je hais les entités HTML biggrin.gif
Anonymus
Justement, c'est ca le problème, tout le reste est en 'é', 'à', etc..
Ca me fait des caractères chinois sur la page, ce qui n'est pas le but recherché.

ps : non, c'est pas pour mon site, c'est pour un crm wink.gif
Eclipsis
Salut Anonymus, je ne suis pas certain d'avoir compris ce que tu demandes exactement...
Tu as résolu ton problème ou non? Dans le doute, est-ce que cette page t'aiderait? A+
Anonymus
Non, je n'ai pas réussi.

Concrètement, je voudrais qu'en faisant :
$string = fonction("€");
echo "devise = ".$string;

ca me sorte :
devise = €

Bref, comment trouver une fonction qui convertisse les caractères spéciaux (tels que €), en caractères "&#xxx;"
TheRec
Une piste :

CODE
function xmlentities($string, $quote_style=ENT_QUOTES)
{
  static $trans;
  if (!isset($trans)) {
      $trans = get_html_translation_table(HTML_ENTITIES, $quote_style);
      foreach ($trans as $key => $value)
          $trans[$key] = '&#'.ord($key).';';
      // dont translate the '&' in case it is part of &xxx;
      $trans[chr(38)] = '&';
  }
  // after the initial translation, _do_ map standalone '&' into '&'
  return preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/","&" , strtr($string, $trans));
}


Le hic c'est que la table de translation "HTML_ENTITIES" ne contient pas € apparemment sad.gif

Mais si tu crée ta propore table "$trans" ça va fonctionner. Le cas spécial de "&" est traîté, le caractère n'est pas converti car on l'utilise comme séparateur dans les url, donc il vaut mieux le traîter à part (en tout cas c'est ainsi que je l'ai compris).

PS: Le code vient de cette page http://ch2.php.net/htmlentities
dans les commentaires...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.