سؤال

لقد كنت أعمل على CMS مخصص في PHP ولم أواجه أي مشاكل حتى وقت قريب. عند الاختبار ، لاحظت أن السلسلة  بدأت تظهر في الجزء العلوي من صفحة الفهرس فقط. الاختبار مع بعض عبارات الموت في جميع أنحاء الكود ، يبدو أن الإخراج يأتي بين ملف يتضمن.

ملف

<?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() في بداية الملف المضمّن ، لا يظهر الإخراج ، ومع ذلك لا يوجد إخراج طائش في أي مكان في الملفتين.

هل كانت مفيدة؟

المحلول

تحتاج إلى حفظ الملف مع الترميز UTF-8 without BOM.

UTF-8 BOM هو تسلسل للبايت (EF BB BF) يسمح للقارئ بتحديد الملف كملف UTF-8. عادةً ما يتم استخدام BOM للإشارة إلى Endianness للترميز ، ولكن نظرًا لأن UTF-8 ليس لديه أي مشكلة ترميز ، فإن BOM غير ضروري.

كيف افعلها:

قم بتنزيل محرر نص جيد مثل المفكرة ++ واستخدام هذا التحويل وحفظ الملف الخاص بك مع UTF-8 without BOM التشفير.

إليك رابط لإجابتي الأخرى تفصيل كيفية تثبيت ملف وتحويله باستخدام Notepad ++.

نصائح أخرى

ربما يكون أ بوم. بعض المحررين لديهم خيارات لتوفير مع BOM. حاول حفظ الملف في محرر مختلف وتحميله ، أو العثور على إعداد BOM وتعطيله.

يطلق عليه Bom وربما وضعه المحرر هناك عند حفظ الملف. ربما يجب أن تبحث عن خيار UTF8 Whithout BOM في المحرر الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top