Lors de l'importation de fichiers .csv, la présence d'une marque d'ordre d'octet (BOM) peut entraîner des problèmes d'encodage . Voici une solution complète pour supprimer la nomenclature des fichiers .csv importés :
Problème :
J'ai du mal à supprimer la nomenclature à l'aide de preg_replace ou str_replace.
Tentative de code :
<code class="php">$filepath = get_bloginfo('template_directory')."/testing.csv"; // ... $file = fopen($filepath, "r") or die("Error opening file"); // ...</code>
Solution :
<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>
Remarque :
La fonction FILE_PUT_CONTENTS ferme automatiquement le fichier, il n'est donc pas nécessaire de le fermer manuellement avec fclose().
En mettant en œuvre ces solutions, vous pouvez supprimer avec succès la nomenclature des fichiers .csv importés et garantir une analyse correcte des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!