caractere speciaux / sql

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("'","&prime;","$car");

$car = str_replace("à","&agrave;","$car");

$car = str_replace("é","&eacute;","$car");

$car = str_replace("è","&egrave;","$car");

$car = str_replace("è","&egrave;","$car");

$car = str_replace("µ","&mu;","$car");

$car = str_replace("î","&icirc;","$car");

$car = str_replace("´","&prime;","$car");

$car = str_replace("°","&deg;","$car");

$car = str_replace("â","&acirc;","$car");

$car = str_replace("ù","&ugrave;","$car");

$car = str_replace("ô","&ocirc;","$car");


return $car;

}

?>

j

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');?>


2


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



 

 

.