PHP批量去除BOM頭代碼分享
更新時(shí)間:2015年06月26日 11:03:23 投稿:junjie
這篇文章主要介紹了PHP批量去除BOM頭代碼分享,本文直接給出實(shí)現(xiàn)代碼,代碼比較簡單,容易看懂,需要的朋友可以參考下
<?php
/**
* 去除bom頭信息
*/
header("Content-Type:text/html; charset=utf-8");
$auto = 1;
checkdir("D:\wamp\www\sales");
function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..'){
if (!is_dir($basedir."/".$file)) {
echo "文件名稱: $basedir/$file ".checkBOM("$basedir/$file")." <br>";
}else{
$dirname = $basedir."/".$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}
function checkBOM ($filename) {
global $auto;
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
if ($auto == 1) {
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return ("<font color=red>發(fā)現(xiàn)BOM并且已自動刪除</font>");
} else {
return ("<font color=red>發(fā)現(xiàn)BOM</font>");
}
}
else return ("沒有發(fā)現(xiàn)BOM");
}
function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
您可能感興趣的文章:
相關(guān)文章
ecshop實(shí)現(xiàn)smtp發(fā)送郵件
這篇文章主要介紹了ecshop實(shí)現(xiàn)smtp發(fā)送郵件,需要的朋友可以參考下2015-02-02
Zend Framework教程之模型Model用法簡單實(shí)例
這篇文章主要介紹了Zend Framework教程之模型Model用法,結(jié)合實(shí)例形式簡單分析了Zend Framework中模型Model的原理,文件組織結(jié)構(gòu)及具體使用方法,需要的朋友可以參考下2016-03-03
PHP 7.4 新語法之箭頭函數(shù)實(shí)例詳解
短閉包,也叫做箭頭函數(shù),是一種用 php 編寫的短函數(shù).這篇文章主要介紹了PHP 7.4 新語法之箭頭函數(shù),需要的朋友可以參考下2019-05-05
thinkPHP實(shí)現(xiàn)的聯(lián)動菜單功能詳解
這篇文章主要介紹了thinkPHP實(shí)現(xiàn)的聯(lián)動菜單功能,結(jié)合實(shí)例形式分析了thinkPHP聯(lián)動菜單的實(shí)現(xiàn)步驟與具體操作技巧,需要的朋友可以參考下2017-05-05
PHP 枚舉類型的管理與設(shè)計(jì)知識點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是關(guān)于PHP 枚舉類型的管理與設(shè)計(jì)知識點(diǎn)總結(jié),需要的朋友們可以學(xué)習(xí)參考下。2020-02-02
100多行PHP代碼實(shí)現(xiàn)socks5代理服務(wù)器[2]
這篇文章主要介紹了100多行PHP代碼實(shí)現(xiàn)socks5代理服務(wù)器,需要的朋友可以參考下2016-05-05

