Files
2024-12-17 17:34:10 +01:00

42 lines
1.5 KiB
PHP

<?php
class TabulizerModifyConvertcharset {
function modify(&$rows, $args = null) {
if (empty($rows)) {
return;
}
if (isset($args)) {
$encoding = trim(strtoupper($args));
} else {
if (function_exists(mb_detect_encoding)) {
$num_of_rows = count($rows);
$num_of_columns = count($rows[1]);
$sample_text = '';
$ic = ($num_of_rows < 10)?$num_of_rows:10;
for ($i = 1; $i<$ic;$i++) {
for ($j=1;$j<=$num_of_columns;$j++) {
if (isset($rows[$i][$j])) $sample_text .= $rows[$i][$j];
}
}
$encoding = mb_detect_encoding($sample_text, mb_detect_order(), true);
} else {
$encoding = 'ISO-8859-1//TRANSLIT';
}
}
if (function_exists('iconv')) {
foreach ($rows as &$row) {
foreach ($row as &$cell) {
if ($cell != '') $cell = iconv($encoding, "UTF-8", $cell);
}
}
} else if (function_exists('mb_convert_encoding')) {
foreach ($rows as &$row) {
foreach ($row as &$cell) {
if ($cell != '') $cell = mb_convert_encoding($cell, "UTF-8", $encoding);
}
}
} else {
echo "No PHP character conversion library was found. Please try to install either iconv or MBString.";
}
}
}
?>