
BOM or byte order mark is to indicate the byte order of your file.
If your PHP file contains non-English characters, UTF-8 formatted PHP file will display as question mark(?) if the PHP script is run on Linux/Apache web service platform. However, no problem is found on Windows/IIS web servers.
You can run the following PHP codes to check whether your PHP got BOM:
<?php
$handle = fopen('yourfilename.php','r');
...