Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
877 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Décalage dans un fichier txt

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Décalage dans un fichier txt

n°2329818
snike
Posté le 01-03-2019 à 07:39:42  profilanswer
 

Bonjour,
 
  Le code php ci-dessous permet de forcer le téléchargement d'un fichier txt qui est ensuite transmit sur une plateforme (Helios).
  A première vue le fichier semble être correct, mais soit disant il y aurait un décalage de 3 caractères sur chaque ligne lorsqu'il arrive sur la plateforme Helios. Est-ce que le code ci-dessous peut-il expliquer ce défaut et ajouter des caractères non visible sur Notepad++, un peut comme un fichier encodé en utf8 et utf8 sans BOM je crois ?
   

Code :
  1. if (isset($_GET["file"]))
  2. {
  3. $filename=$_GET["file"];
  4. // ne conserver que le nom du fichier : le nom que verra s'afficher l'utilisateur
  5. $uploadname=basename($filename);
  6.  
  7. // Envoi du fichier
  8. header('Content-Transfer-Encoding: none');
  9. header('Content-Type: application/octetstream');
  10. header('Content-Disposition: attachment; filename="'.$uploadname.'"');
  11. header('Content-length: '.filesize($filename));
  12. header("Pragma: no-cache" );
  13. header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public" );
  14. header("Expires: 0" );
  15. @readfile($filename) OR die();
  16. }


 
Ou il y a des chances qu'Helios ajoute ?
 
 
Merci par avance.

mood
Publicité
Posté le 01-03-2019 à 07:39:42  profilanswer
 

n°2329827
mechkurt
Posté le 01-03-2019 à 09:29:02  profilanswer
 

Dans la mesure que tu ne fait pas de lecture ligne à ligne de ton fichier avant envoi, ça semble franchement douteux qu'il ajoute 3 caractère à chaque ligne, au début ou a la fin on pourrait chercher la petite bête mais là...


---------------
D3
n°2329910
pluj
Posté le 02-03-2019 à 23:02:57  profilanswer
 

Idem, s'il y a un défaut, il est dans le fichier d'origine ou de ta "plateforme" vu que readfile rebalance le fichier tel quel.
 
S'il y avait un BOM :
* soit il est dans ton script et suivant si tu as un output_buffering, ça plante tes fonctions d'entêtes ou le BOM est reproduit en sortie
* soit il est dans le fichier de départ
 
Donc, au pire, même si tu te retrouvais avec 2 BOM UTF-8, seule la première ligne serait "décalée" de 6 octets. En aucun cas toutes les lignes s'en retrouveraient affectées.
 
Un truc type indentation avec espace insécable ? Du \r\n mal géré ?
 
PS : $_GET['file'] = on peut te faire envoyer le contenu de n'importe quel fichier auquel apache/php a accès en lecture ?!?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Décalage dans un fichier txt

 

Sujets relatifs
Encodage d'un fichier jpeg via AjaxFichier XML / Base de donnée
liste des feuilles d'un fichier excelComment Modifier le contenu d'un fichier txt chaque jour par csv
occurrenc d'un mot dans un fichierFichier JSON to string
Notification sur smartphone quand un fichier sur PC est modifiéLecteur audio et fichier acentué
[DEBUTANT] Condition pour ouvrir un fichier ne fonctionne pasTester si la chaine de caractère mène a un dossier ou un fichier
Plus de sujets relatifs à : Décalage dans un fichier txt


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR