Очень часто на сайтах попадаются так называемые спецсимволы BOM (byte order mark). Они в самих файлах нигде не видны но на сайте проявляются в виде спецсимвола вверху документа который делает отступ. Этот спецсимвол может быть в любом документе на сайте и что бы его найти надо открывать все документы и в notepad++ например менять кодировку в UTF-8 Без BOM.

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

После того как файл 'обеззаражен' он выводится в статистику что удобно и наглядно понятно где была проблема.

Для того что бы удалить BOM на сайте достаточно в корне создать файл bom.php с содержимым:

<?php
// Tell me the root folder path.
// You can also try this one
// $HOME = $_SERVER["DOCUMENT_ROOT"];
// Or this
// dirname(__FILE__)
$HOME = dirname(__FILE__);
// Is this a Windows host ? If it is, change this line to $WIN = 1;
$WIN = 0;
// Recursive finder
function RecursiveFolder($sHOME) {
    global $BOMBED, $WIN;
    $win32 = ($WIN == 1)? "\\" : "/";
    $folder = dir($sHOME);
    $foundfolders = array();
    while ($file = $folder->read()) {
        if($file != "." and $file != "..") {
            if(filetype($sHOME . $win32 . $file) == "dir"){
            $foundfolders[count($foundfolders)] = $sHOME . $win32 . $file;
            }else{
                $content = file_get_contents($sHOME . $win32 . $file);
                $BOM = SearchBOM($content);
                if($BOM){
                    $BOMBED[count($BOMBED)] = $sHOME . $win32 . $file;
                    // Remove first three chars from the file
                    $content = substr($content,3);
                    // Write to file
                    file_put_contents($sHOME . $win32 . $file, $content);
                }
            }
        }
    }
    $folder->close();
    if(count($foundfolders)>0){
        foreach($foundfolders as $folder){
            RecursiveFolder($folder, $win32);
        }
    }
}
// Searching for BOM in files
function SearchBOM($string){
    if(substr($string,0,3) == pack("CCC",0xef,0xbb,0xbf)) return true;
    return false;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>UTF8 BOM FINDER and REMOVER</title>
<style>
body { font-size: 10px; font-family: Arial, Helvetica, sans-serif; background: #FFF; color: #000; }
.FOUND { color: #F30; font-size: 14px; font-weight: bold; }
</style>
</head>
<body>
<?php
$BOMBED = array();
RecursiveFolder($HOME);
echo '<h2>These files had UTF8 BOM, but i cleaned them:</h2><p class="FOUND">';
foreach($BOMBED as $utf){
    echo $utf ."<br />\n";
}
echo '</p>';
?>
</body>
</html>



После чего перейдите в браузере по адресу site.com/bom.php и через некоторое время скрипт отработает и вы увидите результат. Файл сам безвредный может и быть не сервере, но его после можно удалить что бы не захламлял корень сайта.


28.03.2019 6280
Новости из этой категории
20.09.2019 5787
Обзор шаблона который сделал качественный рывок в мире готовых решений - UltraStore от Octemplates
Когда мы хотим получить что-то качественное мы обращаемся к узконаправленным специалистам. Выбор шаблона это очень серьезно, особенно на старте бизнеса, да и на любом его..
02.09.2019 3220
Принимаем Биткоин и Лайткоин в OpenСart 3
CMS Opencart это всемирно известная платформа, которая позволяет быстро и бесплатно создать интернет-магазин. Она получила широкую популярность в Европейских и Азиатских ..
12.03.2019 10636
Как принимать платежи на сайте в Opencart
Создали интернет магазин, пошли продажи, но как их увеличить? Для начала можно сделать онлайн оплату картой прямо на сайте!Почему это хорошо. Потому что очень сильно сокр..
05.10.2018 4542
Что такое настоящий сервис и как завоевать клиента
Сейчас бизнесов очень много и много конкуренции. Казалось бы, как выделиться среди конкурентов при большом их наличии?В поисковой системе например можно это сделать с пом..
17.11.2017 10915
Удаление фото если они не закреплены за товаром - чистка сервера от лишних изображений
Когда в Opencart удаляется товар, фото физически остается на сервере а удаляется лишь в базе сам товар и привязка к файлу.Чем это плохо?Первое - это накопление ненужных ф..
Вся информация, представленная на сайте, является демонстрационной и оставляя информацию о своих персональных данных, вы добровольно делаете их общедоступными.
Рекомендуем использовать обезличенные данные. Мы используем файлы cookie для вашего удобства пользования сайтом и повышения качества рекомендаций. Подробнее