导入 .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>
解决方案:
<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>
<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>
注意:
FILE_PUT_CONTENTS 函数会自动关闭文件,因此无需使用 fclose() 手动关闭它。
通过实施这些解决方案,您可以成功从导入的 .csv 文件中删除 BOM,并确保正确的数据解析。
以上是如何在 PHP 中从 CSV 文件中删除 BOM 编码?的详细内容。更多信息请关注PHP中文网其他相关文章!