Я запускаю эту строку кода.
$string = convert_case('MONTAÑA 221');
public function convert_case($string)
{
$string = mb_convert_case($string, MB_CASE_TITLE, "UTF-8");
return $string;
}
Когда я запускаю его в laravel, я получаю пустую строку, но когда я запускаю ее в браузере, используя простой файл test.php поверх wamp, я получаю правильную строку.
Я уже сталкивался с подобными проблемами, и, возможно, у вас они другие, но вам может пригодиться настройка кодировки HTML-страницы.
В шапке:
<meta charset="utf-8" />
Чтобы ответить на ваш вопрос на основе кода, который вы разместили:
$string = 'MONTAÑA 221';
|
v
public function convert_case($string)
{
$string = html_entity_decode($input,ENT_COMPAT,"UTF-8");
$oldLocale = setlocale(LC_CTYPE, '0');
setlocale(LC_CTYPE, 'en_US.UTF-8');
$string = iconv("UTF-8","ASCII//TRANSLIT",$string);
setlocale(LC_CTYPE, $oldLocale);
return strtolower(preg_replace('/[^a-zA-Z0-9]+/','',$string));
}
Выход:
montana221
Код в пространстве, где вы чувствуете, что они нужны. Этот код специфичен для работы на сервере.
Используя HTML:
<meta charset="utf-8">
Может быть причина того, что он правильно выходит на интерфейс.