【发布时间】:2010-08-30 04:06:36
【问题描述】:
我一直在使用 PHP 编写自定义 CMS,直到最近才遇到任何问题。测试时,我注意到字符串 已开始仅出现在索引页的顶部。在整个代码中使用一些 die 语句进行测试,似乎输出来自文件包含之间。
文件 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');
?>
我无法理解输出的来源,但它似乎位于两个文件之间。我在文件 A 的包含行之前添加了ob_start(),在包含文件的最开始添加了ob_end_clean(),并且没有显示输出,但是这两个文件中的任何地方都没有杂散输出。
【问题讨论】:
标签: php utf-8 include byte-order-mark