errore di encoding in modules/news/functions.php

10 views
Skip to first unread message

John D'Orazio

unread,
Jan 30, 2012, 10:45:51 AM1/30/12
to fla...@googlegroups.com
C'è un errore di encoding in "modules/news/functions.php".

La funzione "GenTxtId" risulta così:

function GenTxtId($text)
{
global $_FN;
$tablename=$this->config['tablename'];
$table=xmldb_frm("fndatabase",$tablename,$_FN['datadir'],$_FN['lang'],$_FN['languages']);
$text=strtolower(str_replace(" ","_",$text));
$text=preg_replace("/�/s","a",$text);
$text=preg_replace("/�/s","a",$text);
$text=preg_replace("/�/s","e",$text);
$text=preg_replace("/�/s","e",$text);
$text=preg_replace("/�/s","i",$text);
$text=preg_replace("/�/s","i",$text);
$text=preg_replace("/�/s","o",$text);
$text=preg_replace("/�/s","o",$text);
$text=preg_replace("/�/s","u",$text);
$text=preg_replace("/�/s","u",$text);
$text=preg_replace("/[^A-Z^a-z_0-9]/s","_",$text);
$text=str_replace("-","_",$text);
$text=str_replace(".","_",$text);
$acc="";
do
{
$textid=$text . $acc;
$rec=$table->xmltable->GetRecord(array("txtid"=>$textid));
$acc=intval($acc) + 1;
}
while (isset($rec['unirecid']));
return $textid;
}

Si vede che i caratteri accentati non sono stati ben codificati come UTF-8... Dovrebbe essere:

function GenTxtId($text)
{
global $_FN;
$tablename=$this->config['tablename'];
$table=xmldb_frm("fndatabase",$tablename,$_FN['datadir'],$_FN['lang'],$_FN['languages']);
$text=strtolower(str_replace(" ","_",$text));
$text=preg_replace("/à/s","a",$text);
$text=preg_replace("/á/s","a",$text);
$text=preg_replace("/è/s","e",$text);
$text=preg_replace("/é/s","e",$text);
$text=preg_replace("/ì/s","i",$text);
$text=preg_replace("/í/s","i",$text);
$text=preg_replace("/ò/s","o",$text);
$text=preg_replace("/ó/s","o",$text);
$text=preg_replace("/ù/s","u",$text);
$text=preg_replace("/ú/s","u",$text);
$text=preg_replace("/[^A-Z^a-z_0-9]/s","_",$text);
$text=str_replace("-","_",$text);
$text=str_replace(".","_",$text);
$acc="";
do
{
$textid=$text . $acc;
$rec=$table->xmltable->GetRecord(array("txtid"=>$textid));
$acc=intval($acc) + 1;
}
while (isset($rec['unirecid']));
return $textid;
}


Alessandro Vernassa

unread,
Jan 30, 2012, 10:49:41 AM1/30/12
to fla...@googlegroups.com

Grazie,

si deve essere persa la codifica dopo qualche salvataggio.

 

Alessandro

Reply all
Reply to author
Forward
0 new messages