头像

php CURL file_get_contents获取字符串bom 强制是0

来源:https://www.sucaihuo.com/topic/2355.html 素材火管理员 2021-05-04 11:15浏览(64)

是因为部分文件代码有bom 下面是批量去除bom代码,只要放到网址根目录执行下就好了

<?php

header('content-Type: text/html; charset=utf-8');

$auto = 1; /* 设置为1标示检测BOM并去除,设置为0标示只进行BOM检测,不去除 */

$basedir = '.';

$loop = true; //www.phpernote.com

echo '当前查找的目录为:' . $basedir . '当前的设置是:';

echo '(1)', $loop ? '检查当前目录以及当前目录的子目录' : '只针对当前目录进行检测';

echo '(2)', $auto ? '检测文件BOM同时去除检测到BOM文件的BOM
' : '只检测文件BOM不执行去除BOM操作
';

checkdir($basedir, $loop);

function checkdir($basedir = '', $loop = true) {

$basedir = empty($basedir) ? '.' : $basedir;

if ($dh = opendir($basedir)) {

while (($file = readdir($dh)) !== false) {

if ($file != '.' && $file != '..') {

if (!is_dir($basedir . '/' . $file)) {

echo '文件: ' . $basedir . '/' . $file . checkBOM($basedir . '/' . $file) . '
';
} else {

if (!$loop)
continue;

$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 (' 素材火sucaihuo.com提示您:找到BOM并已自动去除');
} else {

return (' 找到BOM');
}
} else {

return (' 没有找到BOM');
}
}

function rewrite($filename, $data) {

$filenum = fopen($filename, 'w');

flock($filenum, LOCK_EX);

fwrite($filenum, $data);

fclose($filenum);
}

评论0
头像

系统已开启自动识别垃圾评论机制,识别到的自动封号,下载出错或者资源有问题请联系全栈客服QQ 1915635791

1 2