Неожиданный вывод на файл включает - PullRequest
0 голосов
/ 30 августа 2010

Я работал над пользовательской CMS на PHP и до недавнего времени не сталкивался с какими-либо проблемами.При тестировании я заметил, что строка  начала появляться в верхней части только страницы индекса.При тестировании некоторых операторов die по всему коду кажется, что вывод идет между файлом include.

Файл A

<?php
if (!defined('IN_CMS'))
{
    exit;
}

require(INCLUDE_PATH . '/pages/homepage/main.php');
?>

Файл B (включенный файл)

<?php
if (!defined('IN_CMS'))
{
    exit;
}

$db->sql_query("SELECT * FROM `" . DB_PREFIX . "categories` active = 1");
$cats = $db->sql_results();
$categories = array();

foreach($cats as $cat)
{
    $cat_info = array(
        'name' => $cat['name'],
        'description' => $cat['description'],
        'image' => $setting['site_url'] . '/thumbnails/' . $cat['image'],
    );

    $categories[] = $cat_info;
}

include theme('index');
?>

Я не могу понять, откуда поступает вывод, но, похоже, он находится где-то между двумя файлами.Я добавил ob_start() прямо перед строкой включения в файле A и ob_end_clean() в самом начале включенного файла, и выходные данные не отображаются, однако в этих двух файлах нет случайных выводов.

Ответы [ 3 ]

6 голосов
/ 30 августа 2010

Вам необходимо сохранить файл с кодировкой UTF-8 without BOM.

. Спецификация UTF-8 представляет собой последовательность байтов (EF BB BF), которая позволяет считывателю идентифицировать файл как файл UTF-8.,Как правило, спецификация используется для обозначения порядкового номера кодирования, но поскольку в кодировке UTF-8 нет проблем с кодировкой, эта спецификация не нужна.

Как это сделать:

Загрузите хороший текстовый редактор, такой как Блокнот ++ , и используйте его для преобразования и сохранения файла с кодировкой UTF-8 without BOM.

Вот ссылка на мой другой ответ подробное описание того, как установить и преобразовать кодировку файла с помощью Notepad ++.

0 голосов
/ 30 августа 2010

это называется спецификацией, и, вероятно, ваш редактор поместил ее туда при сохранении файла.может быть, вам стоит поискать UTF8 без опции спецификации в вашем редакторе.

0 голосов
/ 30 августа 2010

Это, вероятно, спецификация . В некоторых редакторах есть варианты сохранения с помощью спецификации. Попробуйте сохранить файл в другом редакторе и загрузить его или найти настройку Bom и отключить ее.

...