Если Вы используете utf, то встречались с таким символом, как BOM (Метка порядка байтов). Довольно бессмысленный символ при использовании utf-8, к которому неприемлим этот самый порядок.
Всё бы ничего, но этот лишний символ в начале файла приносит много проблем, когда попадает в вывод скрипта и происходит бом на сайте: не работает js, проблемы с куками и сессиями, просто непонятный символ на экране…. А уж редакторов, любителей вставить сей злосный символ куда не надо, предостаточно. Всегда проклинал блокнотоподобные редакторы, но изредко для быстрой правки использую notepad++. Уже сотню раз собирался выбросить его из-за дурацкого автокомплита, который даже тег <?php не позволяет нормально писать. Но злосный BOM стал его окончательным преговором, надо же при редактировании плагина сей злосный символ попал в плагин контактной формы, а в итоге у меня отвалился javascript в редакторе, я долго не мог понять, пока не включил консоль ошибок в любимом Operaи не вычислил злоумышлинника. Даль любимый Total Commnder и поиск файлов с текстом \xEF\xBB\xBF , для этого нужно отметить RegEx (2).
Asta la vista baby
Поиск BOM
<?
function duff($filename) {
echo $filename . ' 0 && strpos($file[0], $symbols) === 0) {
$file[0] = str_replace($symbols, », $file[0]);
$handle = fopen($filename, ‘w’);
fwrite($handle, join(», $file));
fclose($handle);
echo ‘ОБНАРУЖЕН яЛП!’;
} else {
echo ‘Чисто.’;
}
echo «\n»;
}
function duif($dir) {
$ext = array(‘.php’, ‘.ctp’);
$files = scandir($dir);
foreach ($files as $file) {
if (!in_array($file, array(‘.’, ‘..’))) {
if (is_dir($dir . ‘/’ . $file)) {
duif($dir . ‘/’ . $file);
} else {
if (in_array(substr($file, strrpos($file, ‘.’)), $ext)) {
duff($dir . ‘/’ . $file);
}
}
}
}
}
duif(‘..’);
?>