Skip to content
Snippets Groups Projects
Commit 6c9de877 authored by Regis Houssin's avatar Regis Houssin
Browse files

Ajout fonction qui vérifie si le flux rss est en utf8

parent 78756133
No related branches found
No related tags found
No related merge requests found
......@@ -91,7 +91,15 @@ class box_external_rss extends ModeleBoxes {
{
$item = $rss->items[$i];
$href = $item['link'];
$title = utf8_decode(urldecode($item['title']));
$result = $this->utf8_check(urldecode($item['title']));
if ($result)
{
$title = utf8_decode(urldecode($item['title']));
}
else
{
$title = (urldecode($item['title']));
}
$title=ereg_replace("([[:alnum:]])\?([[:alnum:]])","\\1'\\2",$title); // Gre problme des apostrophes mal code/dcode par utf8
$title=ereg_replace("^\s+","",$title); // Supprime espaces de dbut
$this->info_box_contents["$href"]="$title";
......@@ -102,6 +110,27 @@ class box_external_rss extends ModeleBoxes {
'target' => 'newrss');
}
}
/**
* \brief Vrifie si le flux est en UTF8
* \param $Str chaine vrifier
*/
function utf8_check($Str) {
for ($i=0; $i<strlen($Str); $i++) {
if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb
elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb
elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb
elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b
else return false; # Does not match any model
for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80))
return false;
}
}
return true;
}
function showBox()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment