Задать вопрос
@maxxxixxxx

Htmlspecialchars как переопределить на другую кодировку?

В php 5.4 поменялась кодировка по умолчанию функции htmlspecialchars.
Как можно ее переопределить чтобы не перелопачивать весь код?
Сайт на кириллице, тут же utf-8.

Какие еще функции потерпели изменения с кодировкой в php 5.4 ?
  • Вопрос задан
  • 2521 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
А еще можно волевым усилием переделать сайт на UTF-8.
2014 год на дворе все таки.
Ответ написан
Комментировать
@iznaur
если очень не хочется,написать свою функцию
function check($text) {
  return htmlspecialchars($text,ENT_COMPAT,нужная_кодировка)
}

а потом с IDE заменить все htmlspecialchars'ы(только не дайте в самой функции заменить)
хотя, так делать не хорошо
Ответ написан
Комментировать
jakulov
@jakulov
Изменены функции htmlspecialchars() и htmlentities().
Кроме как переколбасить весь код – больше никак не исправить проблему.
Правильный способ - указать конкретно кодировку в каждом вызове функции.
Можно порыть - найти регулярку, чтобы автоматом поменять все в коде – но она обычно дает некий процент ошибок.
Ответ написан
Комментировать
@ganzales
у кого нет времени каждый раз все переделывать можно попробовать сделать так:
1. В файле инициализации или том, который везде подключается, создать пользовательскую функцию
function myhtmlspecialchars($string, $flags = 'ENT_COMPAT | ENT_HTML401', $encoding = 'cp1251', $double_encode = true) {
	return htmlspecialchars($string, $flags, $encoding, $double_encode);
}

2. В консоли выполнить поиск-замену
find . -name '*.php' -print -exec sed -i 's/htmlspecialchars/myhtmlspecialchars/g' {} \;

profit!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы