<?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; } }