2010-08-30 5 views
0

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

Файл

<?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() в самом начале включенного файла, и вывод не отображается, однако в обоих файлах нет никакого случайного вывода.

ответ

6

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

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

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

Скачать хороший редактор текста как Notepad++ и с помощью этого Преобразовать и сохранить файл с UTF-8 without BOM кодирования.

Here's a link to my other answer подробная информация о том, как установить и преобразовать кодировку файла с помощью Notepad ++.

+0

Спасибо. В настоящее время я использую Notepad ++, просто понял, что я случайно изменил свою кодировку. – GoalieGuy6

+0

Добро пожаловать. – shamittomar

0

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

0

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