PHP объявить кодировку

На declare() страница руководства по PHP:

кодирование

Кодировка скрипта может быть указана для каждого скрипта с использованием кодировки
директивы.

Пример № 3 Объявление кодировки для скрипта.

<?php
declare(encoding='ISO-8859-1');
// code here
?>
  1. Что это делает именно? Как эта директива влияет на поведение скрипта?

  2. Чем это отличается от установки директив mbstring.internal_encoding (до PHP 5.6) и default_charset (начиная с PHP 5.6) или используя mb_internal_encoding() функционировать?

(Я использую PHP 5.3 и 5.5. В настоящее время мои файлы сохраняются в UTF-8, и я отправляю заголовок Content-Type: text/html; charset=utf-8 при обслуживании файлов HTML.)

6

Решение

PHP 5.6 поставляется с новой директивой charset по умолчанию, установленной на UTF-8, в некоторых случаях это может быть проблемой для страниц, обслуживаемых в метатеге как latin1, вы можете переопределить эту директиву, вызвав ini_set (‘default_charset’, ‘iso-8859-1) ‘) в ваших скриптах.

Для этого поместите каждый php-файл, который вы хотите закодировать на латиницу 1, в начале вашего скрипта:

пример: index.php

<?php
$server_root = realpath($_SERVER["DOCUMENT_ROOT"]);
$config_serv = "$server_root/php/config.php";
include("$config_serv");
?>

Затем создайте папку «php» под вашим корневым сайтом и поместите этот фрагмент кода в config.php:

пример: config.php

<?php
##########################################################################
# Server Directive - Override default_charset utf-8 to latin1 in php.ini #
##########################################################################
@ini_set('default_charset', 'ISO-8859-1');
?>

Если ваш php.ini настроен на latin1 (ISO-8859-1) и вы хотите обслуживать страницу utf-8 (unicode), вы можете принудительно закодировать код, используя вместо iso-8859-1, utf-8. Посмотри на это:

пример: config.php

<?php
##########################################################################
# Server Directive - Override default_charset latin1 to utf-8 in php.ini #
##########################################################################
@ini_set('default_charset', 'UTF-8');
?>

Я надеюсь, что вы найдете мой ответ полезным, я решил свою проблему таким образом!

3

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

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

По вопросам рекламы [email protected]