Чистый генератор URL Symfony2 работает в dev, но не в prod

Я использую этот код в качестве чистого генератора URL-адресов в Symfony 2.6:

namespace AppBundle\Utility;

class Utility {

public static function getSlug($string, $separator = '-')
{
// Source: http://cubiq.org/the-perfect-php-clean-url-generator
$slug = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
$slug = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $slug);
$slug = strtolower(trim($slug, $separator));
$slug = preg_replace("/[\/_|+ -]+/", $separator, $slug);

return $slug;
}
}

Он отлично работает в моей среде разработки, со специальными символами, но не в моей среде prod (мой сервер). Это не меняет персонажей типа é ñ ñ%, они просто исчезают. Пример «Artículo año 2000», он показывает: «artculo-ao-2000».

Я установил PHP 5.5.23 в CentOS 5.11, я добавил UTF-8 в качестве кодировки по умолчанию в http.conf для Apache и в php.ini, если я ввожу «php app / check.php», все в порядке, но он только предлагает ускоритель PHP.

Я попытался загрузить файл со специальным символом /holá.html, и он отлично работает.

Я не знаю, что еще делать. Это из-за тычок конфигурация среды?

1

Решение

iconv() требует правильного setlocale();, Убедитесь, что вы не меняете его между средами, и, если ваша машина для разработки отличается от prod, проверьте, если у вас установлены правильные локали.

0

Другие решения

Других решений пока нет …