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

  FORUM HardWare.fr
  Programmation
  PHP

  Mauvaise reconnaissance de la fin d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mauvaise reconnaissance de la fin d'un fichier

n°1754985
Paulperson​ne820
Posté le 03-07-2008 à 12:16:42  profilanswer
 

Bonjour
 
J'ai un programme PHP qui parse un fichier CSV.
Dés qu'il rencontre un accent (é,è,à ou ë), il le considère comme un caractère de fin de fichier.
Mon fichier est encodé en Occidental ISO-8859-15
 
Que dois-je vérifier sur ma machine (Linux) pour qu'il ne considère pas mes accents comme des caractères de fin de fichier? Configuration apache, des paramètres sur mon serveur?
 
Merci  d'avance

mood
Publicité
Posté le 03-07-2008 à 12:16:42  profilanswer
 

n°1754989
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-07-2008 à 12:20:28  profilanswer
 

Le code ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1755037
Paulperson​ne820
Posté le 03-07-2008 à 13:28:42  profilanswer
 

Voilà le code sur un environnement Windows et Linux de langue française le fichier est traité dans sa totalité.
 
Mais je dois le faire sur un environnement Linux Américan. J'ai essayé de changer la langue du serveur sans succès. Au premier accent, c'est considéré comme la fin du fichier.
   
  //Ouverture du fichier téléchargé
  $tableau_final[]="";
  $fp=fopen($upfile,"r" );
  // Vérification des en-tête des champs de la première ligne
     
  $entete[0]=";\"AFF_LIB";
  $entete[1]="Libellé de l'affaire\";\"AFF_TYPE_TRAV_LIB";
  $entete[2]="Libellé du type de travaux\";\"CA_NOM_PRENOM";
  $entete[3]="Chargé d'affaire\";\"AFF_INSEE";
  $entete[4]="Numéro INSEE\";\"AFF_COMMUNE";
  $entete[5]="Commune principale\";\"AFF_ADR";
  $entete[6]="Adresse des travaux\";\"AFF_REF_ARTICLE49";
  $entete[7]="Réf. projet gaz (Art. 9)\";\"AFF_CPR";
  $entete[8]="Centre de profit\";\"AFF_DT_RO_PREV";
  $entete[9]="Date remise d'ouvrage prévue\";\"AFF_DT_RO_REA";
  $entete[10]="Date remise d'ouvrage réalisée\";\"AFF_DT_DEB_TRAV_PREV";
  $entete[11]="Date début des travaux prévue\";\"AFF_DT_DEB_TRAV_REA";
  $entete[12]="Date début des travaux réalisée\";\"AFF_DT_FIN_TRAV_PREV";
  $entete[13]="Date fin de travaux prévue\";\"AFF_DT_FIN_TRAV_REA";
  $entete[14]="Date fin de travaux réalisée\";\"AFF_DT_ENV_DEC_PREV";
  $entete[15]="Date d'envoi de la demande d'éléments cartographiques prévue\";\"AFF_DT_ENV_DEC_REA";
  $entete[16]="Date d'envoi de la demande d'éléments cartographiques réalisée\";\"AFF_DT_ENV_AUTORI_PREV";
  $entete[17]="Projet gaz (article 9) prévue\";\"AFF_DT_ENV_AUTORI_REA";
  $entete[18]="Projet gaz (article 9) réalisée\";\"AFF_DT_ENV_DC_PREV";
  $entete[19]="Date d'envoi du dossier cartographique prévue\";\"AFF_DT_ENV_DC_REA";
  $entete[20]="Date d'envoi du dossier cartographique réalisée\"";
   
 
  for($i=0;$i<21;$i++){
   $tableau=fgetcsv($fp,100);
   $table=$tableau[0];
   if($table==$entete[$i]) {
       $occ++;      
     } else {
      echo ($entete[$i]).' != '.$table.' <br/><br/><br/>';
     }
  }
    //Récupération des données, test de leur présence, et mise à jour ou insertion
  $nbNewAff=0;
  $nbUpdaAff=0;  
  if($occ==21){
   $cpt = 0;
    while(($table=fgetcsv($fp,1024,";" ))){
    $Aff_Code = $table[0];  
    $Aff_Insee=$table[4];
    $val_ret = true;
    if (($Aff_Insee ==null) || ($Aff_Insee=='ND') || ($Aff_Code==null) || (strlen($Aff_Insee)<4))
    {
     $val_ret = false;
    }  
    if ($val_ret)
    {
     while (strlen($Aff_Insee)<5) {
      $Aff_Insee = "0".$Aff_Insee;
     }
    }
    if ($val_ret) {
     $cNumCentre= getcnumnentreFromCodeInsee($Aff_Insee);  
     $cpt++;
     $ret = getUpdateorAddAffFromRep($cNumCentre,$Aff_Code);
     if ($ret=='insertAff'){
      $field = 'INSERT INTO AFFAIRE (';
      $value = " VALUES (";
      $id = getNextId('SEQ_AFFAIRE');
      addInsertFieldByVal($id,"INUM_AFFAIRE",& $field, &$value);
      addInsertFieldByVal($Aff_Insee,"CCODE_INSEE",& $field, &$value);
      addInsertFieldByVal("","INUM_EXPLOITANT",& $field, &$value);
      addInsertFieldByVal($cNumCentre,"CNUM_CENTRE",& $field, &$value);
      addInsertFieldByVal(str_replace("'","''",@$table[0]),"CCODE_AFFAIRE",& $field, &$value);
      addInsertFieldByVal(str_replace("'","''",substr(@$table[7],0,19)),"CARTICLE",& $field, &$value);
      addInsertFieldByVal("9","IAFFFCER",& $field, &$value);
      addInsertFieldByVal(str_replace("'","''",@$table[3]),"CCHARGE_AFFAIRE",& $field, &$value);
      addInsertFieldByVal($table[8],"CNUM_GR",& $field, &$value);
      addInsertFieldByVal(str_replace("'","''",@$table[1]),"CLIB_TRAVAUX",& $field, &$value);
      addInsertFieldByVal(str_replace("'","''",@$table[2]),"CTYPE_TRAVAUX",& $field, &$value);
      addInsertFieldByVal(str_replace("'","''",@$table[6]),"CADR_TRAVAUX",& $field, &$value);
      addInsertFieldByVal($table[15],"DDEMANDE_CARTO",& $field, &$value);
      addInsertFieldByVal($table[12],"DDEB_TRAVAUX",& $field, &$value);
      addInsertFieldByVal($table[14],"DFIN_TRAVAUX",& $field, &$value);
      addInsertFieldByVal($table[10],"DPMEO",& $field, &$value);
      addInsertFieldByVal($table[20],"DENVOI_DOS_CARTO",& $field, &$value);
      $sql=addFieldsAndValuesInsert($field,$value);
      echo ('<b><font color=red>Ajout de l\'affaire '.str_replace("'","''",@$table[0]).'</font></b><br><br>');
      echo ($sql.'<br>-------------------------------------------------<br>');
      execute($sql);
     }
      else {
      $sql = 'UPDATE AFFAIRE SET ';
      $withComa=FALSE;
      addUpdateFieldByVal($Aff_Insee,"CCODE_INSEE",& $sql, &$withComa);
      addUpdateFieldByVal("","INUM_EXPLOITANT",& $sql, &$withComa);
      addUpdateFieldByVal($cNumCentre,"CNUM_CENTRE",& $sql, &$withComa);
      addUpdateFieldByVal(str_replace("'","''",@$table[0]),"CCODE_AFFAIRE",& $sql, &$withComa);
      addUpdateFieldByVal(str_replace("'","''",substr(@$table[7],0,19)),"CARTICLE",& $sql, &$withComa);
      addUpdateFieldByVal("9","IAFFFCER",& $field, &$withComa);
      //addUpdateFieldByVal($table[7],"IMOA_ER",& $sql, &$withComa); // n'existe plus pour l'ELEC
      addUpdateFieldByVal(str_replace("'","''",@$table[3]),"CCHARGE_AFFAIRE",& $sql, &$withComa);
      addUpdateFieldByVal($table[8],"CNUM_GR",& $sql, &$withComa);
      addUpdateFieldByVal(str_replace("'","''",@$table[1]),"CLIB_TRAVAUX",& $sql, &$withComa);
      addUpdateFieldByVal(str_replace("'","''",@$table[2]),"CTYPE_TRAVAUX",& $sql, &$withComa);
      addUpdateFieldByVal(str_replace("'","''",@$table[6]),"CADR_TRAVAUX",& $sql, &$withComa);
      addUpdateFieldByVal($table[15],"DDEMANDE_CARTO",& $sql, &$withComa);
      addUpdateFieldByVal($table[12],"DDEB_TRAVAUX",& $sql, &$withComa);
      addUpdateFieldByVal($table[14],"DFIN_TRAVAUX",& $sql, &$withComa);
      addUpdateFieldByVal($table[10],"DPMEO",& $sql, &$withComa);
      addUpdateFieldByVal($table[20],"DENVOI_DOS_CARTO",& $sql, &$withComa);
 
      $sql .= ' WHERE INUM_AFFAIRE=' .$ret;
      echo ('<b><font color=red>Mise à jour de l\'affaire '.str_replace("'","''",@$table[0]).'</font></b><br><br>');
      echo ($sql.'<br>-------------------------------------------------<br>');
      execute($sql);
     }    
    }            
    }  
  }
  else {
   echo "le fichier sélectionné n'a pas le format attendu <br/>";
  }
  fclose($fp);
 
Merci d'avance


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

  Mauvaise reconnaissance de la fin d'un fichier

 

Sujets relatifs
SQL Server - BULK INSERT sur un fichier csv avec guillemetsRecherche de caractère dans un nom de fichier
Paramètres pour fichier bat a l'ouverture de sessionImpossible de lire le code VBA d'un fichier Excel avec Excel 2007
convetir fichier excel /html puis l'envoyer.tout cela en ligne de cmdephp et fichier EXCEl
Convertir un fichier latex vers Word ou Openoffice. :-( "On me force"Uploader fichier lecteur réseau
fichier BAT bouton OK help me[XML & PHP]Parcourt d'un fichier XML
Plus de sujets relatifs à : Mauvaise reconnaissance de la fin d'un fichier


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