Home >Backend Development >PHP Problem >How to remove php ufeff
How to remove ufeff in php: 1. Save the PHP file in a DOM-free format; 2. Check and remove ufeff through the "function checkBOM($filename){...}" method.
The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer
How to remove php ufeff?
php Remove the BOM\ufeff of the file
I encountered a problem today. The data returned by the request interface does not conform to the format. When I print it out with the browser, nothing can be seen. The problem was finally found to be \UFEFF (BOM header) in the data header. After searching, it was caused by the file encoding format being UTF8-BOM. The editor saved the format incorrectly during development. There are two solutions:
1. If the file size is small, you can use notopad to save it in a DOM-free format (Format -> Convert to UTF-8 DOM-free format)
2. When there are many files, use the following code. After running, you can specify Repair all files in the directory (the current directory if no parameters are passed)
<?php header('content-Type: text/html; charset=utf-8'); if(isset($_GET['dir'])){ //设置文件目录,如果没有设置,则自动设置为当前文件所在目录 $basedir=$_GET['dir']; }else{ $basedir='.'; } $auto=1;/*设置为1标示检测BOM并去除,设置为0标示只进行BOM检测,不去除*/ echo '当前查找的目录为:'.$basedir.'当前的设置是:'; echo $auto?'检测文件BOM同时去除检测到BOM文件的BOM<br />':'只检测文件BOM不执行去除BOM操作<br />'; checkdir($basedir); 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>找到BOM并已自动去除</font>'); }else{ return (' <font color=red>找到BOM</font>'); } }else{ return (' 没有找到BOM'); } } function rewrite($filename,$data){ $filenum=fopen($filename,'w'); flock($filenum,LOCK_EX); fwrite($filenum,$data); fclose($filenum); } ?>
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to remove php ufeff. For more information, please follow other related articles on the PHP Chinese website!