nur-sery/nur_src/mapper/item/EnsureLatin1Mapper.php

28 lines
744 B
PHP
Raw Normal View History

2024-04-04 16:26:22 +04:00
<?php
namespace nur\mapper\item;
use nur\mapper\base\Mapper;
/**
* Class EnsureLatin1Mapper: s'assurer que toutes les valeurs chaines peuvent
* être converties en latin1 sans problème. les chaines restent en utf-8, mais
* elles sont translitérées si nécessaire
*/
class EnsureLatin1Mapper extends Mapper {
static function ensure_latin1(&$values): void {
if (is_array($values)) {
foreach ($values as &$value) {
self::ensure_latin1($value);
}; unset($value);
} elseif (is_string($values)) {
$latin1 = iconv("utf-8", "latin1//TRANSLIT//IGNORE", $values);
$values = iconv("latin1", "utf-8", $latin1);
}
}
function mapper($item) {
self::ensure_latin1($item);
return $item;
}
}