& # 65279 - This error appears between the body, and gives space difference [duplicate]

3

How do I remove this error? It is causing space in the header of the site.

    
asked by anonymous 16.10.2015 / 00:27

4 answers

6

I found a very interesting solution, it's called boom file. This php file you can put in the root folder of your site, it is a kind of scan, which in turn accesses all the files and adjusts the BOM values of each file.

<?php 
// Tell me the root folder path.
// You can also try this one
// $HOME = $_SERVER["DOCUMENT_ROOT"];
// Or this
// dirname(__FILE__)
ini_set('max_execution_time', 300);

$HOME = dirname(__FILE__);

// Is this a Windows host ? If it is, change this line to $WIN = 1;
$WIN = 0;

// That's all I need
?>
<!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>';

// 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; 
}
?>
</body>
</html>

The file you can put anywhere.php in the root. I hope you can help anyone who needs it with this miserable and boring good error.

    
10.06.2016 / 13:02
5

&#65279 is a special html character, or ISO Latin-1 , which can be placed in the source code like any other alphanumeric character, to produce characters and symbols that can not be generated with normal keyboard, are also known as html_entities in a brief approach.

Recommended Reading:

Special Characters in HTML

HTML Entities

    
16.10.2015 / 00:49
4

This value (65279 == 0xFEFF) is probably a byte-order mark ) that is in your (HTML) file. Open the file in a binary editor and see if those bytes are in the file. For example, in Visual Studio, select "File -> Open", and in the "Open File" dialog, select the "Open With ..." option

Andselectthe"Binary Editor" option. If you find the bytes FEFF in the file, just remove them.

    
16.10.2015 / 00:37
4

The character in question & # 65279 is the unicode character zero width no-break space "(U + FEFF).

You may have copied it into your code via copy and paste (CTRL + C and CTRL + V) without realizing it. The fact is that it is not visible if you are using a text editor whose display unicode characters.

One option is to open the file in a basic editor (for example the windows text editor) that does not interpret unicode or one that does not interpret but can display non-ASCII characters.

After you locate the code snippet, you can delete the text block around it and retype it.

[Source: Stack Overflow ]

    
16.10.2015 / 00:49