Maison >développement back-end >Problème PHP >Comment supprimer php ufeff

Comment supprimer php ufeff

藏色散人
藏色散人original
2021-10-14 09:50:172680parcourir

Comment supprimer ufeff en PHP : 1. Enregistrez le fichier PHP dans un format sans DOM ; 2. Vérifiez et supprimez ufeff via la méthode "function checkBOM($filename){...}".

Comment supprimer php ufeff

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

php ufeff Comment supprimer php ufeff

php Supprimer BOMufeff d'un fichier

J'ai rencontré ? un problème aujourd'hui et a demandé à l'interface de renvoyer Les données ne sont pas conformes au format, et aucun problème n'est visible lors de leur impression avec un navigateur. Enfin, on constate que l'en-tête des données a UFEFF (en-tête BOM). cela est dû au fait que le format d'encodage du fichier est UTF8-BOM. L'éditeur l'enregistre pendant le développement. Il existe deux solutions :

1. Si la taille du fichier est petite, vous pouvez utiliser notopad++ pour l'enregistrer. format sans dom (Format-> Convertir au format UTF-8 sans dom)

2. Lorsqu'il y a de nombreux fichiers, utilisez ce qui suit. Après avoir exécuté le code, tous les fichiers du répertoire spécifié (le répertoire actuel si aucun paramètre n'est défini). réussi) peut être réparé

<?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);
}
?>

Étude recommandée : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn