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é
Code :
- 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 :
Code :
- 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.