URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 8116
[ Назад ]

Исходное сообщение
"Некорректное отображение страницы из php-скрипта."

Отправлено korbnik , 15-Фев-18 17:42 
Добрый день!

Файл /content/document/eis.php в кодировке UCS-2 Little Endian (unicode) из php-скрипта
отображается не корректно, введя в броузере так:

http://10.1.2.39/content/document/eis.php

Вот содержимое файла:

--------------------------begin--eis.php---------------------------------

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Проекты Фирмы");
?><div class="shadow">
  <div class="info_caption">Перечень автоматизированных систем (Проекты) Фирмы и сотрудников, ответственных за их администрирование (Приказ № 684-аа-18)</div>

  <div class="info_msg"><?include $_SERVER["DOCUMENT_ROOT"]."/content/document/files/eis4.html";?> </div>
</div>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

--------------------------end----eis.php---------------------------------

А если напрямую из броузера, то отображается корректно.

http://10.1.2.39/content/document/files/eis4.html

Как нужно настроить PHP чтобы отображалось корректно из PHP-скрипта?
Кодировку файла менять нельзя.

С уважением. Борис.


Содержание

Сообщения в этом обсуждении
"Некорректное отображение страницы из php-скрипта."
Отправлено сня , 15-Фев-18 22:09 
А какая кодировка у eis4.html? Если у eis.php и eis4.html разные кодировки то все конечно смешается и будет каша.

Ну и не забудьте установить правильный BOM (Byte Order Mars) у eis.php, а из eis4.html BOM убрать чтобы он не появился в центре итогового документа.


"Некорректное отображение страницы из php-скрипта."
Отправлено сня , 15-Фев-18 22:12 
Опечатка вышла, Byte Order Mark, конечно. В HTML он нужен если используется Unicode отличное от UTF-8.

"Некорректное отображение страницы из php-скрипта."
Отправлено korbnik , 16-Фев-18 09:55 
> Опечатка вышла, Byte Order Mark, конечно. В HTML он нужен если используется
> Unicode отличное от UTF-8.

Добрый день!

Я извеняюсь, как раз этот файл /content/document/files/eis4.html ,
который из скрипта запускается, в кодировке UCS-2 Little Endian (unicode)

Вот как он отображается www.korbnik.ru/err.jpg

А не из скрипта он отображается корректно.

Файл /content/document/eis.php в кодировке utf-8.

Кодировку файла /content/document/files/eis4.html менять нельзя.

Такое требование заказчиков.

Заранее благодарен.


"Некорректное отображение страницы из php-скрипта."
Отправлено сня , 16-Фев-18 23:11 
А что будет если поменять

<?include $_SERVER["DOCUMENT_ROOT"]."/content/document/files/eis4.html";?>

на (если установлен модуль iconv)

<?php
    $content = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/content/document/files/eis4.html");
    echo iconv('UCS-2LE', 'UTF-8', $content);
?>

или (если установлен модуль mbstring)

<?php
    $content = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/content/document/files/eis4.html");
    echo mb_convert_encoding($content, 'UTF-8', 'UTF-16LE');
?>


"Некорректное отображение страницы из php-скрипта."
Отправлено korbnik , 19-Фев-18 11:21 
>[оверквотинг удален]
> на (если установлен модуль iconv)
> <?php
>     $content = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/content/document/files/eis4.html");
>     echo iconv('UCS-2LE', 'UTF-8', $content);
> ?>
> или (если установлен модуль mbstring)
> <?php
>     $content = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/content/document/files/eis4.html");
>     echo mb_convert_encoding($content, 'UTF-8', 'UTF-16LE');
> ?>

Добрый день!

Да, заработало. Спасибо огромное. Установлен модуль mbstring.

Всем спасибо за уделённое внимание.