У меня есть следующий код, который нормализует имя файла на сервере:
private static function normalize($name,$currency) {
$currencies = array('$', '元', '€');
preg_match("/([\S]+)(\.\w+(?=$))/", $name, $matches);
VarDumper::dump($matches); echo '<br>';
$name = strtolower($matches[1]);
$ext = strtolower($matches[2]);
$name = str_replace($currencies, '-' . $currency . '-', $name);
VarDumper::dump($name); echo '<br>';
$name = preg_replace("/[^a-zA-Z\-\d]+/", "-", $name);
$name = preg_replace("/\-+/", "-", $name);
$name = strtolower($name);
$name = trim($name, ' ,-');
$name = $name . $ext;
return $name;
}
Первый дамп покажет следующую строку:
1988-1-унц-Gold-китайско-Panda-100hEG-Bullion-Монета-.999-24K-оборот
И второй дамп показывает это:
1988-1-унц-золото-китайский-панда-100heg-слитках-монетный-.999-24k-оборот
На localhost все работает нормально и символ CNY отображается правильно, но на сервере dev строка выглядит так, как указано выше.
http-сервер: Apache 2.2, AddDefaultCharset utf-8 в httpd.conf включен.
Может кто-нибудь посоветовать возможное решение этой проблемы?
Задача ещё не решена.
Других решений пока нет …