Введення та виведення 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...