Heim >Backend-Entwicklung >PHP-Problem >So entfernen Sie PHP ufeff

So entfernen Sie PHP ufeff

藏色散人
藏色散人Original
2021-10-14 09:50:172680Durchsuche

So entfernen Sie ufeff in PHP: 1. Speichern Sie die PHP-Datei in einem DOM-freien Format. 2. Überprüfen und entfernen Sie ufeff mit der Methode „function checkBOM($filename){...}“.

So entfernen Sie PHP ufeff

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

php ufeff Wie entferne ich PHP ufeff?

php Entfernen Sie BOMufeff aus einer Datei

Ich bin darauf gestoßen Ich habe heute ein Problem festgestellt und die Schnittstelle zur Rückgabe aufgefordert. Die Daten entsprechen nicht dem Format und beim Drucken mit einem Browser ist kein Problem zu erkennen. Nach der Suche wurde festgestellt, dass der Datenheader UFEFF hat. Es liegt daran, dass das Dateikodierungsformat UTF8-BOM ist. Das Format ist falsch. Es gibt zwei Lösungen:

1 Wenn die Dateigröße klein ist, können Sie sie mit notopad++ speichern dom-freies Format (Format->In dom-freies UTF-8-Format konvertieren)

2. Wenn viele Dateien vorhanden sind, verwenden Sie Folgendes: Führen Sie nach dem Ausführen des Codes alle Dateien im angegebenen Verzeichnis aus (das aktuelle Verzeichnis, wenn keine Parameter vorhanden sind). bestanden) kann repariert werden

<?php
header(&#39;content-Type: text/html; charset=utf-8&#39;);
if(isset($_GET[&#39;dir&#39;])){ //设置文件目录,如果没有设置,则自动设置为当前文件所在目录
    $basedir=$_GET[&#39;dir&#39;];
}else{
    $basedir=&#39;.&#39;;
}
$auto=1;/*设置为1标示检测BOM并去除,设置为0标示只进行BOM检测,不去除*/
echo &#39;当前查找的目录为:&#39;.$basedir.&#39;当前的设置是:&#39;;
echo $auto?&#39;检测文件BOM同时去除检测到BOM文件的BOM<br />&#39;:&#39;只检测文件BOM不执行去除BOM操作<br />&#39;;
checkdir($basedir);
function checkdir($basedir){
    if($dh=opendir($basedir)){
        while (($file=readdir($dh)) !== false){
            if($file != &#39;.&#39; && $file != &#39;..&#39;){
                if(!is_dir($basedir.&#39;/&#39;.$file)){
                    echo &#39;文件: &#39;.$basedir.&#39;/&#39;.$file .checkBOM($basedir.&#39;/&#39;.$file).&#39; <br>&#39;;
                }else{
                    $dirname=$basedir.&#39;/&#39;.$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 (&#39; <font color=red>找到BOM并已自动去除</font>&#39;);
        }else{
            return (&#39; <font color=red>找到BOM</font>&#39;);
        }
    }else{
        return (&#39; 没有找到BOM&#39;);
    }
}
function rewrite($filename,$data){
    $filenum=fopen($filename,&#39;w&#39;);
    flock($filenum,LOCK_EX);
    fwrite($filenum,$data);
    fclose($filenum);
}
?>

Empfohlenes Studium: „PHP Video Tutorial

Das obige ist der detaillierte Inhalt vonSo entfernen Sie PHP ufeff. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn