匯入.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中文網其他相關文章!