Problème d’affichage de caractères spéciaux de bases de données
Lorsqu'un tableau de base de données contient des caractères spéciaux avec accent , apostrophe ou autre par exemple “é” ou “à” …
Lorsque les mots à caractères spéciaux sont retirés par SQL ils pourront pas être affichés correctement sur une page web
Les caractères spéciaux doivent être convertis en entités HTML avant leurs affichage
On va créer 2 pages php
Une page qui contient une fonction “replace_special_caracter.php”
Une page qui contient le contenu qu’on veut afficher par ex “view.php”
On va créer une fonction qui permet de remplacer les caractères spéciaux des variables type “text” ou “varchar” issues d’une table de base de donnée en entités html pour les afficher correctement
On va créer une page PHP qu’on appelle “replace_special_caracter.php”
Dans la page replace_special_caracter.php on introduit le code de la fonction repCar qui permet de transformer les caractères spéciaux des variables.
<?php
function repCar($car)
{
$car = str_replace("'","′","$car");
$car = str_replace("à","à","$car");
$car = str_replace("é","é","$car");
$car = str_replace("è","è","$car");
$car = str_replace("è","è","$car");
$car = str_replace("µ","μ","$car");
$car = str_replace("î","î","$car");
$car = str_replace("´","′","$car");
$car = str_replace("°","°","$car");
$car = str_replace("â","â","$car");
$car = str_replace("ù","ù","$car");
$car = str_replace("ô","ô","$car");
return $car;
}
?>
Au début de la page de visualisation de la variable à caractère spéciaux “view.php”
, on insere
<?php include('replace_special_caracter.php');?>
puis on fait appel à la fonction repCar quand on veut afficher les caractères spéciaux
par ex , si nous avons une variable issue de table d’une base de données “short_description_french”
on veut afficher correctement cette variable , on fait appel à notre fonction
<?php echo repCar($short_description_french);?>
c’est tout
.