Import et traitement d'un csv dans un tableau

Fermé
badibad - 18 juin 2011 à 18:24
Bonjour,

Bonjour à tous

J'ai un site en oscommerce et dans mon admin j'ai un module nommé Atos board


Atos board sert a recupéré les journaux de fond afin de recupéré le nom du client, de verifier les perte de commandes. Ces journaux de fond étais en format xls mais malheureusement le format à changer en csv.

Cette modification rend inutilisable atos bord donc j'assaye de le modifier et je travail sur un bout de code depuis 1 semaine
   
          
       $row = 1;
       $handle = fopen("$tmp_file", "rb"); 
       while (($lines = fgetcsv($handle, 0, ",")) !== FALSE) {    
       echo $header;

       foreach($lines as $field)
       {
                  // Post-format
                  //
                  if ( $i++ % 2 )   $line_format = str_replace("CLASS", "dataTableatos", $origin_line_format);
                  else              $line_format = str_replace("CLASS", "dataTableatos", $origin_line_format); 
                  

                  // Tout va bien !
                  //
                  $error_flag = false; 
                  
                  $val = explode("\t", $field);
                  
                  // On saute les entêtes ...
                  //
                  if ( $val[0] != "TRANSACTION" )  continue;
  
                  // Valeurs du journal ATOS
                  //
                  $entete                 = $val[0];
                  $transaction_id         = $val[1];
                  $merchant_id            = $val[2];
                  $payment_means          = $val[3];
                  $origin_amount          = $val[4];
                  $amount                 = $val[5];                  
                  $payment_date           = $val[18];
                  $payment_time           = $val[8];
                  $card_validity          = $val[9];
                  $card_type              = $val[10];
                  $card_number            = $val[11];
                  $response_code          = $val[12];
                  $cvv_response_code      = $val[13];
                  $complementary_code     = $val[14];
                  $certificate            = $val[15];
                  $authorization_id       = $val[16];
                  $capture_date           = $val[17];
                  $transaction_status     = $val[7];
                  $return_context         = $val[19];
                  $autoresponse_status    = $val[20];
                  $atos_order_id          = $val[21];
                  $atos_customer_id       = $val[22];
                  $customer_ip_address    = $val[23];
                  $account_serial         = $val[24];
                  $session_id             = $val[25];
                  $transaction_condition  = $val[26];
                  $cavv_ucaf              = $val[27];
                  $complementary_info     = $val[28];
                  $bank_response_code     = $val[29];
                  
                  // Post-traitements afin d'obtenir des équivalences entre les valeurs ATOS/osC 
                  //
                  $payment_date           = preg_replace('/([0-9]{4})([0-9]{2})([0-9]{2})/', '\1-\2-\3', $payment_date);
                  $payment_time           = preg_replace('/([0-9]{2})([0-9]{2})([0-9]{2})/', '\1:\2:\3', $payment_time);
                  $card_number            = preg_replace('/([0-9]{4}).([0-9]{2})/', '\1 #### #### ##\2', $card_number);
                  $amount                 = (float)($amount / 100);


Pour le moment ce code ne marche pas et je ne vois pas bien ou ce trouve mon erreur donc si quelqu'un connais la réponse merci d'avance.