Я чищу строку UTF-8: первая буква в верхнем регистре - убрать специальные символы - Разрешить пробел - Разграничить запятыми и разрешить числа
Я задаюсь вопросом, можно ли создать что-то более элегантное, чем показано ниже. Первый preg_replace возвращает один пробел. other заменяется ничем.
$cleanCats = array_map(function ($element) {
$oneSpace = preg_replace('!\s+!', ' ', $element);
$clean = preg_replace('~[^\pL\d ]+~u','',$oneSpace);
return mb_strtoupper(mb_substr($clean, 0, 1)) . mb_substr($clean, 1);
}, $arrFromHtml);
echo json_encode('*' . strip_tags(implode(',', $cleanCats)) . '*');
$ arrFrom Html выглядит следующим образом:
Array
(
[0] => B:.M¤%&/W
[1] => λgreek
[2] => бжÐrussian
[3] => H<>elloj
[4] => com,m()/a
[5] => Åó*dź
[6] => 1 spc
[7] => 3 spc
[8] => æøå danish
[9] => Euroâ¬
)
, и это вывод:
*BMW,Λgreek,БжЖrussian,Helloj,Comma,Łódź,1 spc,3 spc,Æøå danish,Euro*