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