CodeIgniter - странная проблема вывода - PullRequest
2 голосов
/ 15 декабря 2010

Я вижу очень странную проблему с выводом скрипта.Иногда я получаю четырехзначный шестнадцатеричный код перед началом вывода и ноль в конце вывода - например:

2fc3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0     
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
......
</html>
0  

Шестнадцатеричное число варьируется в зависимости от запрошенного uri и / или содержимого.Я не использую кэширование и сжатие вывода отключено.Я видел эту проблему в нескольких проектах, каждый из которых был очень разным и размещен на разных серверах.

Пример проблемы можно увидеть здесь: http://www.holidayproperties.co.uk/notfound.html

Вы можете заменить 'notfound »с любым произвольным текстом, чтобы увидеть, как шестнадцатеричный код изменяется на другие значения.

Я использую эту библиотеку шаблонов - http://codeigniter.com/forums/viewthread/95687 - хотя даже при обходе библиотеки и непосредственном выводе с использованием echoта же проблема.

Я бы хотел решить эту проблему, поэтому всяческая помощь будет принята с благодарностью.

[Редактировать] Я обнаружил, что удаление следующего:

$this->output->set_header('HTTP/1.1 404 Not Found');

Исправляет проблему, но почему это должно происходить в первую очередь?Заголовок устанавливается перед любым выводом, и на самом деле я не получаю никаких предупреждений php / ci о настройке заголовков после начала вывода.

Спасибо,

Брин.

Ответы [ 3 ]

1 голос
/ 16 декабря 2010

Выстрел в темноте, но есть ли в ваших файлах php начальные или конечные пробелы до или после тегов php? Это дало мне проблемы в прошлом.

Еще один длинный вопрос - вопрос, который я недавно отправил: Как заставить IE8 не показывать мою страницу PHP как пустую

Прокрутите страницу вниз, чтобы увидеть, как я ее решил. Это было связано с кодировкой по умолчанию моего сервера, отличной от UTF-8, и, следовательно, выплескиванием некоторого мусорного текста в мой сгенерированный html Наверное, не поможет, но я решил выбросить это туда.

0 голосов
/ 26 мая 2016

Это подзаголовок чанкованного (https://en.wikipedia.org/wiki/Chunked_transfer_encoding) ответа). Самый простой способ отключить чанкинг - использовать версию HTTP 1.0:

$this->output->set_header("HTTP/1.0 404 Not Found");
0 голосов
/ 16 декабря 2010

Это происходит со всеми представлениями в конкретном контроллере?Возможно, у вас есть эхо в конструкторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...