Введення та виведення HTTP
Механізм перетворення кодувань вводу-виводу HTTP також може конвертувати двійкові дані. Користувачі повинні самі стежити за перетворенням кодування символів, якщо введення-виводу HTTP передаються двійкові дані.
Зауваження :
Якщо для атрибуту HTML-форми
enctype
установлено значениеmultipart/form-data
, а для директивиmbstring.encoding_translation
у файлі php.ini встановлено значення On, змінні та імена завантажуваних файлів у POST-запитах конвертуються у внутрішнє кодування скрипта автоматично. Однак це не стосується ключів запиту.
-
Введення HTTP
Неможливо контролювати перетворення символів HTTP-введення з PHP-скрипту. Вимкнути перетворення символів HTTP-введення можна у файлі php.ini.
Приклад #1 Відключення перетворення кодування введення HTTP у файлі php.ini
;;; Вимкнення конвертації mbstring.http_input = pass ;;; Вимкнення конвертації mbstring.encoding_translation = Off
Якщо PHP працює як модуль Apache, можна перевизначити ці налаштування у кожній директиві віртуального хоста (Virtual Host) у файлі конфігурації httpd.conf або для кожної директорії у файлі .htaccess. Додаткову інформацію можна знайти в розділі «Конфігурація» та до посібника з роботи з веб-сервером Apache.
-
Висновок HTTP
Є кілька способів увімкнути перетворення кодування символів виводу. Один з них – файл php.ini, інший – виклик функціїob_start()з передачею в
ob_start
функції mb_output_handler()як callback-функції.
Приклад #2 Приклад налаштування php.ini
;; Включение преобразования кодировки символов вывода для всех PHP-страниц
;; Включение буферизации вывода
output_buffering = On
;; Установка функции mb_output_handler в качестве значения директивы для включения конвертации вывода
output_handler = mb_output_handler
Приклад #3 Приклад скрипту
Loading...