RSS
 

BOM-символы

09 Янв

Часто у начинающих web-программистов использующих PHP и кодировку UTF-8 возникает проблема. Скрипты выдают ошибку, что не могут отослать хидеры итп. Для решения данной проблемы я в свое время пользовался Notepad++ или открывал все файлы в фаре и удалял непонятные символы в начале каждого файла.
Но недавно, совершенно случайно забрел на очень хорошую статью «Избавляемся от BOM-символов».

В частности, в данной статье предлагается использовать набор из 2 функций:


function duff($filename) {
echo $filename . ' <-- ';
$symbols = chr(239) . chr(187) . chr(191);
$file = file($filename);
if (isset($file[0]) && strlen($file[0]) > 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() ходит по директориям и отдает на просмотр все файлы с расширениями, указанными в массиве $ext, функции duff(), которая и занимается чисткой.

Более детальное описание вы можете прочесть на источнике

 
No Comments

Posted in PHP

 

Leave a Reply

 
 
 
Это полезно - энергоспецтехника, система скидок