从导入的 .csv 文件中删除 BOM () [英] Remove BOM () from imported .csv file
本文介绍了从导入的 .csv 文件中删除 BOM ()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从我导入的文件中删除 BOM,但它似乎不起作用.
I want to delete the BOM from my imported file, but it just doesn't seem to work.
我尝试了 preg_replace('/[x00-x1Fx80-xFF]/', '', $file);
和一个 str_replace.
I tried to preg_replace('/[x00-x1Fx80-xFF]/', '', $file);
and a str_replace.
我希望有人看到我做错了什么.
I hope anybody sees what I'm doing wrong.
$filepath = get_bloginfo('template_directory')."/testing.csv";
setlocale(LC_ALL, 'nl_NL');
ini_set('auto_detect_line_endings',TRUE);
$file = fopen($filepath, "r") or die("Error opening file");
$i = 0;
while(($line = fgetcsv($file, 1000, ";")) !== FALSE) {
if($i == 0) {
$c = 0;
foreach($line as $col) {
$cols[$c] = utf8_encode($col);
$c++;
}
} else if($i > 0) {
$c = 0;
foreach($line as $col) {
$data[$i][$cols[$c]] = utf8_encode($col);
$c++;
}
}
$i++;
}
-----------
已解决版本:
-----------
SOLVED VERSION:
setlocale(LC_ALL, 'nl_NL');
ini_set('auto_detect_line_endings',TRUE);
require_once(ABSPATH.'wp-admin/includes/file.php' );
$path = get_home_path();
$filepath = $path .'wp-content/themes/pon/testing.csv';
$content = file_get_contents($filepath);
file_put_contents($filepath, str_replace("xEFxBBxBF",'', $content));
// FILE_PUT_CONTENTS AUTOMATICCALY CLOSES THE FILE
$file = fopen($filepath, "r") or die("Error opening file");
$i = 0;
while(($line = fgetcsv($file, 1000, ";")) !== FALSE) {
if($i == 0) {
$c = 0;
foreach($line as $col) {
$cols[$c] = $col;
$c++;
}
} else if($i > 0) {
$c = 0;
foreach($line as $col) {
$data[$i][$cols[$c]] = $col;
$c++;
}
}
$i++;
}
我发现它删除了 BOM 并通过用新数据覆盖它来调整文件.问题是我的脚本的其余部分不再起作用,我不明白为什么.这是一个新的 .csv 文件
I found that it removes the BOM and adjusts the file by overwriting it with the new data. The problem is that the rest of my script doesn't work anymore and I can't see why. It is a new .csv file
推荐答案
试试这个:
function removeBomUtf8($s){
if(substr($s,0,3)==chr(hexdec('EF')).chr(hexdec('BB')).chr(hexdec('BF'))){
return substr($s,3);
}else{
return $s;
}
}
这篇关于从导入的 .csv 文件中删除 BOM ()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文