首页  >  文章  >  后端开发  >  如何在 PHP 中从 CSV 文件中删除 BOM 编码?

如何在 PHP 中从 CSV 文件中删除 BOM 编码?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-04 15:39:02799浏览

How to Remove BOM Encoding from CSV Files in PHP?

从导入的 .csv 文件中删除 BOM ()

导入 .csv 文件时,字节顺序标记 (BOM) 的存在可能会导致编码问题。以下是从导入的 .csv 文件中删除 BOM 的全面解决方案:

问题:

难以使用 preg_replace 或 str_replace 删除 BOM。

代码尝试:

<code class="php">$filepath = get_bloginfo('template_directory')."/testing.csv";
// ...
$file = fopen($filepath, "r") or die("Error opening file");
// ...</code>

解决方案:

  1. 使用 file_get_contents() 和 file_put_contents() 函数读取和覆盖文件删除 BOM 后:
<code class="php">// Read the file contents
$content = file_get_contents($filepath);

// Remove the BOM
$content = str_replace("\xEF\xBB\xBF",'', $content);

// Overwrite the file with the updated content
file_put_contents($filepath, $content);</code>
  1. 使用自定义函数检测并删除 BOM:
<code class="php">function removeBomUtf8($s){
  if(substr($s,0,3)==chr(hexdec('EF')).chr(hexdec('BB')).chr(hexdec('BF'))){
       return substr($s,3);
   }else{
       return $s;
   }
}</code>
  1. 重新打开文件并

注意:

FILE_PUT_CONTENTS 函数会自动关闭文件,因此无需使用 fclose() 手动关闭它。

通过实施这些解决方案,您可以成功从导入的 .csv 文件中删除 BOM,并确保正确的数据解析。

以上是如何在 PHP 中从 CSV 文件中删除 BOM 编码?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn