Π’Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ 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 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ скрипта

<?php

// Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ прСобразования ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ символов Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для этой страницы

// Установка ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ символов HTTP-Π²Ρ‹Π²ΠΎΠ΄Π° Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SJIS
mb_http_output('SJIS');

// Запуск Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«mb_output_handlerΒ» Π² качСствС
// callback-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
ob_start('mb_output_handler');

?>
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы