Enlever BOM csv/excel en PHP

Fermé
Syron777 Messages postés 3 Date d'inscription jeudi 7 février 2013 Statut Membre Dernière intervention 3 mai 2013 - 7 févr. 2013 à 15:32
Bonjour,
Je viens vers vous suite à un petit problème.

Pour être bref, j'importe un fichier CSV (édité sous Excel 2007) grâce à du PHP via AJAX.
Je récupère les données je les insères dans ma base MYSQL sans soucis.

Maintenant je voudrais mettre un peu de sécurité et empêcher que l'utilisateur ne puisse uploader des fichiers ne respectant pas un certain format interne (en-tête des colonnes).

Seul problème au moment de comparer les valeurs récupérées et ce qu'il devrait y avoir, j'obtiens toujours FAUX.

J'ai essayé

if ($valeurCSV==$valeurVoulue)
if ($valeurCSV===$valeurVoulue)
if (trim($valeurCSV))==trim($valeurVoulue))
if (ord($valeurCSV))==ord($valeurVoulue))
if (ord(trim($valeurCSV))==ord(trim($valeurVoulue)))

strcmp($valeurCSV,$valeurVoulue)

J'ai aussi essayé array_diff() après avoir réorganisé mon code.

Je n'ai pas réussi.

De là j'entends parler de DOM, j'ai ensuite essayé de changer l'encodage de mon script.
Je travaille sous eclipse, je suis donc allé dans workspace pour changer l'encodage par défaut,
puis propriétés du projet et faire de même. Réenregistrer les fichiers concernés, rien n'y fait !

J'ai aussi essayé des fonctions php de ce type :

function fopen_utf8 ($filename, $mode) {
$file = @fopen($filename, $mode);
$bom = fread($file, 3);
if ($bom != b"\xEF\xBB\xBF")
rewind($file);
else
echo "bom found!\n";
return $file;

}

Trouvées sur un forum. Je n'ai pas réussi. Donc si quelqu'un avait une solution pour comparer de manière fiable, le contenu d'une cellule CSV avec un chaîne de caractères...
Sachant que je ne sais pas en quoi est encodé mon fichier CSV et que mes scripts sont encodés en CP1252
Je suis plus que preneur.
A voir également: