Home > Article > Backend Development > Remove File BOM Header Tool_PHP Tutorial
<?<span>php </span><span>/*</span><span>* * 用法:复制以下代码至新建的php文件中,将该php文件放置项目目录,运行即可。代码来源于网络。 * chenwei 注。 </span><span>*/</span> <span>header</span>('content-Type: text/html; charset=utf-8'<span>); </span><span>$auto</span>=1;<span>/* </span><span>设置为1标示检测BOM并去除,设置为0标示只进行BOM检测,不去除 </span><span>*/</span> <span>$basedir</span>='.'<span>; </span><span>$loop</span>=<span>true</span><span>; </span><span>echo</span> '当前查找的目录为:'.<span>$basedir</span>.'当前的设置是:'<span>; </span><span>echo</span> '(1)',<span>$loop</span>?'检查当前目录以及当前目录的子目录':'只针对当前目录进行检测'<span>; </span><span>echo</span> '(2)',<span>$auto</span>?'检测文件BOM同时去除检测到BOM文件的BOM<br />':'只检测文件BOM不执行去除BOM操作<br />'<span>; checkdir(</span><span>$basedir</span>,<span>$loop</span><span>); </span><span>function</span> checkdir(<span>$basedir</span>='',<span>$loop</span>=<span>true</span><span>){ </span><span>$basedir</span>=<span>empty</span>(<span>$basedir</span>)?'.':<span>$basedir</span><span>; </span><span>if</span>(<span>$dh</span>=<span>opendir</span>(<span>$basedir</span><span>)){ </span><span>while</span> ((<span>$file</span>=<span>readdir</span>(<span>$dh</span>))!==<span>false</span><span>){ </span><span>if</span>(<span>$file</span>!='.'&&<span>$file</span>!='..'<span>){ </span><span>if</span>(!<span>is_dir</span>(<span>$basedir</span>.'/'.<span>$file</span><span>)){ </span><span>echo</span> '文件: '.<span>$basedir</span>.'/'.<span>$file</span> .checkBOM(<span>$basedir</span>.'/'.<span>$file</span>).' <br>'<span>; }</span><span>else</span><span>{ </span><span>if</span>(!<span>$loop</span>) <span>continue</span><span>; </span><span>$dirname</span>=<span>$basedir</span>.'/'.<span>$file</span><span>; checkdir(</span><span>$dirname</span><span>); } } } </span><span>closedir</span>(<span>$dh</span><span>); } } </span><span>function</span> checkBOM(<span>$filename</span><span>){ </span><span>global</span> <span>$auto</span><span>; </span><span>$contents</span>=<span>file_get_contents</span>(<span>$filename</span><span>); </span><span>$charset</span>[1]=<span>substr</span>(<span>$contents</span>,0,1<span>); </span><span>$charset</span>[2]=<span>substr</span>(<span>$contents</span>,1,1<span>); </span><span>$charset</span>[3]=<span>substr</span>(<span>$contents</span>,2,1<span>); </span><span>if</span>(<span>ord</span>(<span>$charset</span>[1])==239&&<span>ord</span>(<span>$charset</span>[2])==187&&<span>ord</span>(<span>$charset</span>[3])==191<span>){ </span><span>if</span>(<span>$auto</span>==1<span>){ </span><span>$rest</span>=<span>substr</span>(<span>$contents</span>,3<span>); rewrite(</span><span>$filename</span>,<span>$rest</span><span>); </span><span>return</span> (' <font color=red>找到BOM并已自动去除</font>'<span>); }</span><span>else</span><span>{ </span><span>return</span> (' <font color=red>找到BOM</font>'<span>); } }</span><span>else</span><span>{ </span><span>return</span> (' 没有找到BOM'<span>); } } </span><span>function</span> rewrite(<span>$filename</span>,<span>$data</span><span>){ </span><span>$filenum</span>=<span>fopen</span>(<span>$filename</span>,'w'<span>); </span><span>flock</span>(<span>$filenum</span>,<span>LOCK_EX); </span><span>fwrite</span>(<span>$filenum</span>,<span>$data</span><span>); </span><span>fclose</span>(<span>$filenum</span><span>); }</span>