Titre du sujet : Re: Module News + SEO par grandoc sur 24/05/2009 16:41:07
Bonjour
J'ai résolu le problème des caractères accentués, sauf pour l'apostrophe qui ne veut vraiment en faire qu'à sa tête voici la solution que j'ai trouvée : dans le fichier include/functions, vers la ligne 665, remplacer :
function elimina_acentos($cadena){
$simbolos = array('(', ')', ':', '%', '?', '¿', '!', '¡', '/', '"','$','=','@','&');
$nuevacadena = str_replace($simbolos, '', $cadena);
$tofind = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ :';
$replac = 'aaaaaaaaaaaaooooooooooooeeeeeeeeccIIIIiiiiuuuuuuuuynn- ';
//return(strtolower(strtr($nuevacadena,$tofind,$replac)));
return(strtolower(str_replace('--','-',(str_replace('--','-',(str_replace($simbolos,'', strtr($nuevacadena,$tofind,$replac)))))))).'.html';
}
par :
function elimina_acentos( $string )
{
$string = trim($string);
if ( ctype_digit($string) )
{
return $string;
}
else
{
// replace accented chars
$simbolos = array(''','(', ')', ':', '%', '?', '¿', '!', '¡', '/', '"','$','=','@','&');
$string = str_replace($simbolos, '', $string);
$accents = '/&([A-Za-z]{1,2})(grave|acute|circ|cedil|uml|lig);/';
$string_encoded = htmlentities($string,ENT_QUOTES,'UTF-8');
$string = preg_replace($accents,'$1',$string_encoded);
// clean out the rest
$replace = array('([40])','([^a-zA-Z0-9-])','(-{2,})');
$with = array('-','','-');
$string = preg_replace($replace,$with,$string);
}
return strtolower($string).'.html';
}
pour l'apostrophe, j'ai eu beau essayer de l'introduire sous toutes ses formes ( '\'', '& apos;', '& #39;') ça ne veut pas le faire...je donne ma langue au chat
|