Найчастіше на сайтах трапляються звані спецсимволи 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 до $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, але 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 6659
Новости из этой категории
20.09.2019 6337
Обзор шаблона который сделал качественный рывок в мире готовых решений - UltraStore от Octemplates
Когда мы хотим получить что-то качественное мы обращаемся к узконаправленным специалистам. Выбор шаблона это очень серьезно, особенно на старте бизнеса, да и на любом его..
02.09.2019 3616
Принимаем Биткоин и Лайткоин в OpenСart 3
CMS Opencart это всемирно известная платформа, которая позволяет быстро и бесплатно создать интернет-магазин. Она получила широкую популярность в Европейских и Азиатских ..
12.03.2019 10951
Как принимать платежи на сайте в Opencart
Создали интернет магазин, пошли продажи, но как их увеличить? Для начала можно сделать онлайн оплату картой прямо на сайте!Почему это хорошо. Потому что очень сильно сокр..
05.10.2018 4799
Что такое настоящий сервис и как завоевать клиента
Сейчас бизнесов очень много и много конкуренции. Казалось бы, как выделиться среди конкурентов при большом их наличии?В поисковой системе например можно это сделать с пом..
17.11.2017 11195
Удаление фото если они не закреплены за товаром - чистка сервера от лишних изображений
Когда в Opencart удаляется товар, фото физически остается на сервере а удаляется лишь в базе сам товар и привязка к файлу.Чем это плохо?Первое - это накопление ненужных ф..