广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php 代码怎么去掉bom
  • 119
分享到

php 代码怎么去掉bom

2024-04-02 19:04:59 119人浏览 泡泡鱼
摘要

本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php 代码怎么去掉bom?php批量去掉utf8格式文件中的bom头部我经常使用txt文本编辑器写php文件,所以经常会自动添加bom头部,导致在很多时候会带来问题

教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。

php 代码怎么去掉bom?

php批量去掉utf8格式文件中的bom头部

我经常使用txt文本编辑器写php文件,所以经常会自动添加bom头部,导致在很多时候会带来问题,比如我们session无法工作、cookie无法设置等等问题。

下面我整理了几个利用php程序清除 utf8格式文件中的bom头部方法。

例1

代码如下


function clearbom($contents){
//UTF8 去掉文本中的 bom头
$BOM = chr(239).chr(187).chr(191);
return str_replace($BOM,”,$contents);
}




function clearfilebom($fileName){
$c = file_get_contents($fileName);
$c = clearbom($c);
file_put_contents($fileName,$c);
}

例2

如何将带有BOM文件的格式转换成无签名的UTF-8格式文件呢?下面分享给大家一段PHP代码:

代码如下

<?php
//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除

$basedir=”.”; //修改此行为需要检测的目录,点表示当前目录
$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。

//以下不用改动

if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file!=’.’ && $file!=’..’ && !is_dir($basedir.”/”.$file)) echo “filename: $file “.checkBOM(“$basedir/$file”).” <br>”;
}
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 found, automatically removed.</font>”);
} else {
return (“<font color=red>BOM found.</font>”);
}
}
else return (“BOM Not Found.”);
}

function rewrite ($filename, $data) {
$filenum=fopen($filename,”w”);
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
//结束
?>

例3

会自动扫描所有子目录和文件

代码如下

<?php
// 设定你要清除BOM的根目录(会自动扫描所有子目录和文件)
$HOME = dirname(__FILE__);
// 如果是Windows系统,修改为:$WIN = 1;
$WIN = 0;
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “Http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>UTF8 BOM 清除器</title>
<style>
body { font-size: 10px; font-family: Arial, Helvetica, sans-serif; background: #FFF; color: #000; }
.FOUND { color: #F30; font-size: 14px; font-weight: bold; }
</style>
</head>
<body>
<?php
$BOMBED = array();
RecursiveFolder($HOME);
echo ‘<h2>These files had UTF8 BOM, but i cleaned them:</h2><p>’;
foreach ($BOMBED as $utf) { echo $utf .”<br />n”; }
echo ‘</p>’;
// 递归扫描
function RecursiveFolder($sHOME) {
global $BOMBED, $WIN;
$win32 = ($WIN == 1) ? “\” : “/”;
$folder = dir($sHOME);
$foundfolders = array();
while ($file = $folder->read()) {
if($file != “.” and $file != “..”) {
if(filetype($sHOME . $win32 . $file) == “dir”){
$foundfolders[count($foundfolders)] = $sHOME . $win32 . $file;
} else {
$content = file_get_contents($sHOME . $win32 . $file);
$BOM = SearchBOM($content);
if ($BOM) {
$BOMBED[count($BOMBED)] = $sHOME . $win32 . $file;
// 移出BOM信息
$content = substr($content,3);
// 写回到原始文件
file_put_contents($sHOME . $win32 . $file, $content);
}
}
}
}
$folder->close();
if(count($foundfolders) > 0) {
foreach ($foundfolders as $folder) {
RecursiveFolder($folder, $win32);
}
}
}
// 搜索当前文件是否有BOM
function SearchBOM($string) {
if(substr($string,0,3) == pack(“CCC”,0xef,0xbb,0xbf)) return true;
return false;
}
?>
</body>
</html>

以上就是php 代码怎么去掉bom的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: php 代码怎么去掉bom

本文链接: https://www.lsjlt.com/news/99142.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php 代码怎么去掉bom
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php 代码怎么去掉bom?PHP批量去掉utf8格式文件中的bom头部我经常使用txt文本编辑器写php文件,所以经常会自动添加bom头部,导致在很多时候会带来问题...
    99+
    2022-10-20
  • php代码如何去掉bom
    本篇内容介绍了“php代码如何去掉bom”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php代码掉bom的方法:1、使用“function ...
    99+
    2023-07-04
  • php bom怎么去掉
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php bom怎么去掉?PHP去除BOM简单的方法自己在调用接口时候,因为用到了对方提供的封装方法,在输出一组数据时候一直显示错误,最后想到可能对方给的方法里面含有编码...
    99+
    2020-10-18
    bom
  • php bom如何去掉
    这篇文章主要为大家展示了“php bom如何去掉”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php bom如何去掉”这篇文章吧。去掉php bom的方法:1、找到PHP根目录;2、将“func...
    99+
    2023-06-22
  • 批量去掉php中的bom
    在 PHP 中,BOM (Byte Order Mark) 是一个特殊的 Unicode 字符,用于标识 Unicode 编码方案的字节顺序。虽然 BOM 在某些情况下有用,但对于 PHP 文件来说,它往往会引起一些问题。比如在执行 PHP...
    99+
    2023-05-24
  • php如何去掉html代码
    这篇文章主要讲解了“php如何去掉html代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何去掉html代码”吧!php去掉html代码的方法:1、通过“function stri...
    99+
    2023-06-07
  • 使用php如何去掉ubb代码
    使用php如何去掉ubb代码?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。php去掉ubb代码的方法:首先打开相应的代码文件;然后用“\[.*\”]把ubb替换掉;最后再用...
    99+
    2023-06-14
  • php ufeff怎么去掉
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php ufeff怎么去掉php 去除文件的BOM\ufeff今天遇到一个问题,请求接口返回的数据不符合格式,用浏览器打印出来又看不出什么问题,最后发现是数据头部有\UF...
    99+
    2021-06-01
    php ufeff
  • php bom 中文乱码怎么办
    本文操作环境:windows7系统、PHP7.4版、DELL G3电脑php bom 中文乱码怎么办PHP开发因BOM产生的乱码问题项目中要在php中直接下载csv文件,而文件下载后,在excel中显示乱码。所以要增加BOM,方式如下:$b...
    99+
    2019-08-21
    php bom 乱码
  • php怎么去掉百分号
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php怎么去掉百分号?PHP百分号转小数代码如:<php   $a = "20.544545%";   echo (float)$a/1...
    99+
    2021-01-21
    php
  • php正则怎么去掉href
    本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。php正则怎么去掉href问题描述:php 正则表达式 去除href及数据要把这段<a target="_blank" href="....
    99+
    2016-04-01
    php 正则 href
  • php怎么去掉html注释
    本文操作环境:windows7系统、PHP7.1版、Dell G3电脑。php怎么去掉html注释?PHP过滤html注释过滤html注释:所谓过滤,不过是字符串的匹配与替换,这里我们用到的正则匹配替换函数preg_replace(reg,...
    99+
    2020-08-23
    php
  • php怎么去掉前导0
    本文操作环境:windows7系统、PHP7.1版、Dell G3电脑。php怎么去掉前导0?想要去掉前导0非常简单,只要ltrim函数即可。去掉前导0只要用以下代码:$str = ltrim($str, '0')...
    99+
    2015-11-28
    php
  • php bom中文乱码怎么解决
    本篇内容主要讲解“php bom中文乱码怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php bom中文乱码怎么解决”吧!php bom中文乱码的解决办法:1、打开相应的PHP开发文件;...
    99+
    2023-06-21
  • php 怎么去掉多余逗号
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php 怎么去掉多余逗号?php中去除拼接字符串后的逗号在使用一些字符串拼接的时候总是会出现最后有个逗号的情况,之前都是使用方法判断去除逗号,但是好麻烦,后来找到一个很简...
    99+
    2021-09-04
    php
  • php怎么去掉json反斜杠
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php怎么去掉json反斜杠?PHP去掉json字符串中的反斜杠\通过AJAX传到PHP的json字符串有时候加上反斜杠”\”来转义,PHP处理时需要先去掉反斜杠,然后再...
    99+
    2018-07-09
    php
  • php 怎么去掉左边的0
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php 怎么去掉左边的0?新建一个php文件,命名为test.php,用于讲解php中怎么去除数字前面的0。在test.php文件中,使用header()方法将页面的编...
    99+
    2016-09-12
    php
  • php怎么去掉后两位数
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php怎么去掉后两位数substr() 函数返回字符串的一部分。如果 start 参数是负数且 length 小于或等于 start,则 length 为 ...
    99+
    2019-12-18
    PHP
  • php怎么去掉数组键值
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php中去掉数组键值有多种方法,下面介绍两种方法:方法1:使用array_keys()函数array_key() 函数可以获取数组中的部分或所有键名。利用array_k...
    99+
    2017-12-31
    php
  • php 怎么去掉连续空格
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php 怎么去掉连续空格?PHP去除连续空格<php $note = strip_tags($value['Content']); ...
    99+
    2022-11-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作