1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| <?php
// Fonction qui supprime les accents
// Elle est un peu compliquée, maais c'est la seule fonction qui remplace tous les accents par leurs équivalents sans accents
function stripAccents($str = null, $encoding = 'UTF-8') {
if (!is_string($str)) {
return false;
}
/* transformer les caractères accentués en entités HTML */
$str = htmlentities($str, ENT_NOQUOTES, $encoding);
/* remplacer les entités HTML pour avoir juste le premier caractères non accentués
* Exemple : "&ecute;" => "e", "&Ecute;" => "E", "Ã " => "a" ... */
$str = preg_replace('#&([A-za-z])(?:acute|grave|cedil|circ|orn|ring|slash|th|tilde|uml);#', '\1', $str);
/* remplacer les ligatures tel que : , Æ ...
Exemple "Å" => "oe" */
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
/* Supprime les espaces */
$str = preg_replace('/\s/', '_', $str);
/* Supprimer tout le reste */
$str = preg_replace('#&[^;]+;#', '', $str);
return $str;
}
function getKey($cat) {
$cat = trim($cat);
$cat = strtolower($cat);
$cat = stripAccents($cat);
//On supprime tous les caractères non alphanumérique
$cat = preg_replace("#[^!A-Za-z0-9 ]+#", '', $cat);
return $cat;
}
$cat1 = "DemiLune";
$cat2 = "Demi - lune";
if (getKey($cat1) == getKey($cat2)) {
echo "Même catégorie !!";
} |
Partager