executeS(' SELECT `id_country`, `call_prefix` FROM `' . _DB_PREFIX_ . 'country` ') as $row){ $call_prefix[(int) $row['id_country']] = $row['call_prefix']; } // $str = 'aaAAäãØÃ#$()+@'; function str_format($str){ // return preg_replace( // '~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml|caron);~i', // '$1', // htmlentities($str, ENT_NOQUOTES, 'UTF-8') // ); return preg_replace( '~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml|caron);~i', '$1', preg_replace('~&sup([\w]+);~', '$1', htmlentities($str, ENT_NOQUOTES, 'UTF-8') ) ); } function phone_format($phone, $id_country = 8){ global $call_prefix; $prefix = '+' . (isset($call_prefix[$id_country]) ? $call_prefix[$id_country] : '33'); // normalize phone $phone = str_replace(array(' ', '+'), '', $phone); if (strlen($phone) > '10'){ if ($phone[0] != 0 && $phone[1] == 0) $phone = substr($phone, 1); $phone = substr($phone, 0, 10); } if (strlen($phone) == 9){ $phone = '0' . $phone; } // add spaces // $_phone = ''; // for($i=0; $i position, * 1 => size, * 2 => type, * 3 => code, * 4 => value */ function addRows($data_rows = array()){ if (!is_array($data_rows) || !count($data_rows)) return ''; $data_result = ''; foreach ($data_rows as $row) { switch ($row[2]) { case 'N': if (isset($row[4]) && is_numeric($row[4])) $val = sprintf('%0'.(int) $row[1].'d', $row[4]); else $val = mb_str_pad(mb_substr(str_format($row[4]), 0, (int) $row[1]), (int) $row[1]); break; case 'A': case 'DT': default: $val = mb_str_pad(mb_substr(str_format($row[4]), 0, (int) $row[1]), (int) $row[1]); break; } $data_result .= $val; } $data_result .= "\n"; return $data_result; } $last_sync = date('Y-m-d H:i:s', strtotime((Configuration::get('MONDIALRELAY_LASTSYNC') ? Configuration::get('MONDIALRELAY_LASTSYNC') : '0000-00-00 00:00:00'))); Configuration::updateValue('MONDIALRELAY_LASTSYNC', date('Y-m-d H:i:s')); $sql = ' SELECT p.*, o.`id_lang`, o.`id_order`, o.`id_customer`, o.`id_address_delivery`, c.`email` FROM `'._DB_PREFIX_.'mondialrelay_parcel` p LEFT JOIN `'._DB_PREFIX_.'order_detail` d ON p.`id_order_detail` = d.`id_order_detail` LEFT JOIN `'._DB_PREFIX_.'orders` o ON d.`id_order` = o.`id_order` LEFT JOIN `'._DB_PREFIX_.'customer` c ON c.`id_customer` = o.`id_customer` WHERE p.`date_add` > "'.pSQL($last_sync).'" AND d.`id_order_detail` IS NOT NULL AND o.`id_order` IS NOT NULL GROUP BY p.`shipping_number` '; $lines = Db::getInstance()->ExecuteS($sql); if(count($lines)) { $mr_account_details = unserialize(Configuration::get('MR_ACCOUNT_DETAIL')); $crt_amount = 0.00; // contre remboursement en EUR $exp_company = Configuration::get('MONDIALRELAY_EXP_COMPANY'); $exp_addr1 = Configuration::get('MONDIALRELAY_EXP_ADDR1'); $exp_addr2 = Configuration::get('MONDIALRELAY_EXP_ADDR2'); $exp_postcode = Configuration::get('MONDIALRELAY_EXP_POSTALCODE'); $exp_city = Configuration::get('MONDIALRELAY_EXP_CITY'); $exp_country = Db::getInstance()->getValue(' SELECT `iso_code` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int) Configuration::get('MONDIALRELAY_EXP_COUNTRY').' '); $exp_phone = Configuration::get('MONDIALRELAY_EXP_PHONE'); $exp_email = Configuration::get('MONDIALRELAY_EXP_EMAIL'); $collection_agency = Db::getInstance()->getValue(' SELECT `modexp` FROM `'._DB_PREFIX_.'mondialrelay_tri` WHERE `cppay` = "'.pSQL(Db::getInstance()->getValue(' SELECT `iso_code` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int) $exp_country.' ')).'" AND `destex` = "'.pSQL($exp_postcode).'" '); $result = ''; $cpt = 0; foreach($lines as $line) { if (!in_array($line['mode'], array('24R', '24L', '24X', 'DRI','LD1','LDR','LDS','HOM'))) continue; $cpt++; // $mr_liv_mode = array( // 'DISCOL' => (in_array($line['mode'], array('DOM', 'HOM', 'LD1', 'LDS', 'LCC'))? 'D': 'R'), // 'SERCOL' => (in_array($line['mode'], array('DOM', 'HOM', 'LD1'))? '1': (in_array($line['mode'], array('LDS', 'LCC'))? '2': '3')), // 'COLMOD' => (in_array($line['mode'], array('DOM', 'HOM', 'LD1'))? 'CDR': ($line['mode'] == 'LDS'? 'CDS': ($line['mode'] == 'LCC'? 'CCC': 'REL'))) // ); $mr_liv_mode = array( 'DISCOL' => 'R', 'SERCOL' => '2', 'COLMOD' => 'CCC' ); switch ($line['mode']) { case 'DOM': case 'HOM': case 'LD1': case 'LDR': $mr_liv_mode['DISCOL'] = ''; $mr_liv_mode['SERCOL'] = '2'; $mr_liv_mode['COLMOD'] = 'CCC'; // $mr_liv_mode['DISCOL'] = 'D'; // $mr_liv_mode['SERCOL'] = '1'; // $mr_liv_mode['COLMOD'] = 'CDR'; break; case 'LDS': $mr_liv_mode['DISCOL'] = ''; $mr_liv_mode['SERCOL'] = '2'; $mr_liv_mode['COLMOD'] = 'CCC'; // $mr_liv_mode['DISCOL'] = 'D'; // $mr_liv_mode['SERCOL'] = '2'; // $mr_liv_mode['COLMOD'] = 'CDS'; break; case 'LCC': $mr_liv_mode['DISCOL'] = 'D'; $mr_liv_mode['SERCOL'] = '2'; $mr_liv_mode['COLMOD'] = 'CCC'; case '24R': case '24L': case '24X': case 'DRI': $mr_liv_mode['DISCOL'] = ''; $mr_liv_mode['SERCOL'] = '2'; $mr_liv_mode['COLMOD'] = 'CCC'; default: $mr_liv_mode['DISCOL'] = 'R'; $mr_liv_mode['SERCOL'] = '2'; $mr_liv_mode['COLMOD'] = 'CCC'; break; } $address = Db::getInstance()->getRow(' SELECT * FROM `'._DB_PREFIX_.'address` WHERE `id_address` = '.(int) $line['id_address_delivery'].' '); // $code_marque = mb_substr($line['expedition_number'], 0, 2); // $expe_number = mb_substr($line['expedition_number'], 2, 8); $data_rows = array( array(1, 1, 'A', 'CODFIC', 'A'), array(2, 1, 'A', 'CODENR', '1'), array(3, 1, 'A', 'SSCODE', '0'), array(4, 2, 'A', 'MARQUE', 'F1'), array(6, 8, 'A', 'NEXPE', $line['expedition_number']), array(14, 2, 'N', 'NBCOLIS', '01'), array(16, 1, 'A', 'DISTRI', 'D'), array(17, 8, 'A', 'CDEST', !empty($line['idrelay'])? $line['idrelay']: $address['postcode']), array(25, 4, 'N', 'TRANS', $line['modexp']), array(29, 5, 'N', 'TOURNE', $line['direction']), array(34, 1, 'N', 'TYPSER', ($line['mode'] == 'DOM' || $line['mode'] == 'HOM'? '0': ($line['mode'] == 'LD1'? '1': ($line['mode'] == 'LDS' || $line['mode'] == 'LCC'? '2': '3')))), array(35, 3, 'A', 'LIVMOD', $line['mode']), array(38, 10, 'DT', 'DATREM', date('d.m.Y')), array(48, 4, 'A', 'SIGLE', ''), array(52, 28, 'A', 'LVADR1', $address['lastname'].' '.$address['firstname']), array(80, 30, 'A', 'LVADR2', $address['company']), array(110, 2, 'A', 'Libre', ''), array(112, 30, 'A', 'LVADR3', $address['address1']), array(142, 2, 'A', 'Libre', ''), array(144, 30, 'A', 'LVADR4', $address['address2']), array(174, 2, 'A', 'Libre', ''), array(176, 30, 'A', 'LVADR5', ''), array(206, 2, 'A', 'Libre', ''), array(208, 26, 'A', 'LVADR6', $address['city']), array(234, 2, 'A', 'LVCPAY', $line['cppay']), array(236, 5, 'A', 'LVCPOS', $address['postcode']), array(241, 5, 'A', 'LVXPOS', ''), array(246, 20, 'A', 'LVTEL1', str_replace(' ','',phone_format($address['phone']))), array(266, 20, 'A', 'LVTEL2', str_replace(' ','',phone_format($address['phone_mobile']))), array(286, 70, 'A', 'LVEMAI', $line['email']), array(356, 31, 'A', 'INSLIV1', $address['other']), array(387, 31, 'A', 'INSLIV2', $address['other']), array(418, 10, 'A', 'libre', ''), array(428, 7, 'N', 'POIDS', (float) $line['weight'] * $mr_account_details['MR_WEIGHT_COEFFICIENT']), array(435, 7, 'N', 'VOLU', ''), array(442, 3, 'N', 'LONG', ''), array(445, 6, 'A', 'ORIG', 'BEBEBO'), array(451, 7, 'N', 'VENTE', ''), array(458, 3, 'A', 'DEVVTE', 'EUR'), array(461, 7, 'N', 'CRT', (int) $crt_amount * 100), array(468, 3, 'A', 'DEVCRT', 'EUR'), array(471, 15, 'A', 'REFEXT', 'EXP'.$line['id_order']), array(486, 9, 'A', 'REFCLI', $line['id_customer']), array(495, 10, 'DT', 'DATFAC', date('d.m.Y')), array(505, 10, 'DT', 'DATCDE', date('d.m.Y')), array(515, 5, 'A', 'CALPHA', $address['lastname']), array(520, 5, 'A', 'PRTMIS', ''), array(525, 1, 'A', 'COLLEC', ''), array(526, 1, 'A', 'TOPMDM', 'N'), array(527, 2, 'A', 'TOPEMB', ''), array(529, 2, 'N', 'QTLGAR', ''), array(531, 10, 'DT', 'DATRDV', ''), array(541, 2, 'A', 'CODCRNRDV', ''), array(543, 2, 'A', 'DEBCRNLIVANN', ''), array(545, 2, 'A', 'FINCRNLIVANN', ''), array(547, 10, 'A', 'Libre', ''), array(557, 1, 'A', 'TOPAVI', ''), array(558, 7, 'N', 'TAXAFF', ''), array(565, 7, 'N', 'TAXCRT', ''), array(572, 2, 'A', 'Libre', ''), array(574, 3, 'A', 'TOPKDO', ''), array(577, 3, 'N', 'TOTDIM', ''), array(580, 33, 'A', 'Libre', ''), array(613, 7, 'A', 'TOP-POSIT', ''), array(620, 1, 'A', 'DISCOL', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : $mr_liv_mode['DISCOL'])), array(621, 8, 'A', 'CCOLL', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : (!empty($line['idrelay'])? $line['idrelay']: $address['postcode']))), array(629, 4, 'A', 'AGPEC', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : $collection_agency)), array(633, 5, 'A', 'TRNCOL', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : $line['direction'])), array(638, 1, 'A', 'SERCOL', ($mr_liv_mode['SERCOL'] ? $mr_liv_mode['SERCOL'] : 2)), array(639, 3, 'A', 'COLMOD', ($mr_liv_mode['COLMOD'] ? $mr_liv_mode['COLMOD'] : 'CCC')), array(642, 4, 'A', 'SIGLE', ''), array(646, 28, 'A', 'EXADR1', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : $exp_company)), array(674, 30, 'A', 'EXADR2', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : mb_substr($exp_company, 28, 30))), array(704, 2, 'A', 'Libre', ''), array(706, 30, 'A', 'EXADR3', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : $exp_addr1)), array(736, 2, 'A', 'Libre', ''), array(738, 30, 'A', 'EXADR4', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : $exp_addr2)), array(768, 2, 'A', 'Libre', ''), array(770, 30, 'A', 'EXADR5', ''), array(800, 2, 'A', 'Libre', ''), array(802, 26, 'A', 'EXADR6', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : $exp_city)), array(828, 2, 'A', 'EXCPAY', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : $exp_country)), array(830, 5, 'A', 'EXCPOS', ($mr_liv_mode['COLMOD'] === 'CCC' ? '' : $exp_postcode)), array(835, 5, 'A', 'EXXCPO', ''), array(840, 20, 'A', 'EXNTEL', str_replace(' ','',phone_format($exp_phone, (int) $exp_country))), array(860, 70, 'A', 'EXEMAI', $exp_email), array(930, 2, 'A', 'LNGCOL', 'FR'), array(932, 9, 'N', 'RECOL', '999999999'), array(941, 1, 'A', 'TASSU', ''), array(942, 2, 'A', 'LNGLIV', ($line['id_lang'] == 3? 'ES': ($line['id_lang'] == 2? 'FR': 'EN'))), array(944, 58, 'A', 'Linre', '') ); $result .= addRows($data_rows); // $result .= // 'A' // .'1' // .'0' // .str_pad(mb_substr('F1', 0, 2), 2) // .str_pad(mb_substr($line['expedition_number'], 0, 8), 8) // .'01' // .'D' // .str_pad(mb_substr(!empty($line['idrelay'])? $line['idrelay']: $address['postcode'], 0, 8), 8) // .str_pad(mb_substr($line['modexp'], 0, 4), 4) // .str_pad(mb_substr($line['direction'], 0, 5), 5) // .($line['mode'] == 'DOM' || $line['mode'] == 'HOM'? '1': ($line['mode'] == 'LD1'? '1': ($line['mode'] == 'LDS' || $line['mode'] == 'LCC'? '2': '3'))) // .str_pad(substr($line['mode'], 0, 3), 3) // .date('d.m.Y') // .str_pad('', 4) // .str_pad(mb_substr($address['lastname'].' '.$address['firstname'], 0, 28), 28) // .str_pad(mb_substr($address['company'], 0, 30), 30) // .str_pad('', 2) // .str_pad(mb_substr($address['address1'], 0, 30), 30) // .str_pad('', 2) // .str_pad(mb_substr($address['address2'], 0, 30), 30) // .str_pad('', 2) // .str_pad('', 30) // .str_pad('', 2) // .str_pad(mb_substr($address['city'], 0, 26), 26) // .str_pad(mb_substr($line['cppay'], 0, 2), 2) // .str_pad(mb_substr($address['postcode'], 0, 5), 5) // .str_pad(mb_substr($address['postcode'], 5, 5), 5) // .str_pad(mb_substr($address['phone'], 0, 20), 20) // .str_pad(mb_substr($address['phone_mobile'], 0, 20), 20) // .str_pad(mb_substr($line['email'], 0, 70), 70) // .str_pad(mb_substr($address['other'], 0, 31), 31) // .str_pad(mb_substr($address['other'], 31, 31), 31) // .str_pad(' ', 10) // .sprintf('%07d', (float) $line['weight'] * $mr_account_details['MR_WEIGHT_COEFFICIENT']) // .str_pad('', 7) // .str_pad('', 3) // .str_pad(mb_substr(Configuration::get('MONDIALRELAY_ORIGIN_CODE', 'BEBEBO'), 0, 6), 6) // .str_pad('', 7) // .'EUR' // .sprintf('%07d', (int) $crt_amount * 100) // .'EUR' // .str_pad(mb_substr('EXP'.$line['id_order'], 0, 15), 15) // .str_pad(mb_substr($line['id_customer'], 0, 9), 9) // .date('d.m.Y') // .date('d.m.Y') // .str_pad(mb_substr($address['lastname'], 0, 5), 5) // .str_pad('', 5) // .str_pad('', 1) // .'N' // .str_pad('', 2) // .str_pad('', 2) // .str_pad('', 10) // .str_pad('', 2) // .str_pad('', 2) // .str_pad('', 2) // .str_pad('', 10) // .str_pad('', 1) // .str_pad('', 7) // .str_pad('', 7) // .str_pad('', 2) // .str_pad('', 3) // .str_pad('', 3) // .str_pad('', 33) // .str_pad('', 7) // .($mr_liv_mode['COLMOD'] === 'CCC' ? ' ' : $mr_liv_mode['DISCOL']) // .($mr_liv_mode['COLMOD'] === 'CCC' ? ' ' : str_pad(mb_substr(!empty($line['idrelay'])? $line['idrelay']: $address['postcode'], 0, 8), 8)) // .($mr_liv_mode['COLMOD'] === 'CCC' ? ' ' : mb_substr($collection_agency, 0, 4)) // .($mr_liv_mode['COLMOD'] === 'CCC' ? ' ' : str_pad($line['direction'], 5)) // .($mr_liv_mode['SERCOL'] ? $mr_liv_mode['SERCOL'] : 2) // .($mr_liv_mode['COLMOD'] ? $mr_liv_mode['COLMOD'] : 'CCC') // //.'CCC' // .' ' // .($mr_liv_mode['COLMOD'] === 'CCC' ? str_pad('', 28) : str_pad(mb_substr($exp_company, 0, 28), 28)) // .($mr_liv_mode['COLMOD'] === 'CCC' ? str_pad('', 30) : str_pad(mb_substr($exp_company, 28, 30), 30)) // .' ' // .($mr_liv_mode['COLMOD'] === 'CCC' ? str_pad('', 30) : str_pad(mb_substr($exp_addr1, 0, 30), 30)) // .' ' // .($mr_liv_mode['COLMOD'] === 'CCC' ? str_pad('', 30) : str_pad(mb_substr($exp_addr2, 0, 30), 30)) // .' ' // .' ' // .' ' // .($mr_liv_mode['COLMOD'] === 'CCC' ? str_pad('', 26) : str_pad(mb_substr($exp_city, 0, 26), 26)) // .($mr_liv_mode['COLMOD'] === 'CCC' ? str_pad('', 2) : str_pad(mb_substr($exp_country, 0, 2), 2)) // .($mr_liv_mode['COLMOD'] === 'CCC' ? str_pad('', 5) : str_pad(mb_substr($exp_postcode, 0, 5), 5)) // .str_pad(' ', 5) // .str_pad(mb_substr($exp_phone, 0, 20), 20) // .str_pad(mb_substr($exp_email, 0, 70), 70) // .'FR' // //.(in_array($line['mode'], array('DOM', 'HOM', 'LD1'))? ' ': ($line['mode'] == 'LDS'? ' ': ($line['mode'] == 'LCC'? '999999999': ' '))) // TODO ref expéditeur // .'999999999' // .' ' // .($line['id_lang'] == 3? 'ES': ($line['id_lang'] == 2? 'FR': 'EN')) // .' ' // ."\n"; $i = 0; foreach(Db::getInstance()->ExecuteS(' SELECT d.*, p.`quantity` FROM `'._DB_PREFIX_.'mondialrelay_parcel` p LEFT JOIN `'._DB_PREFIX_.'order_detail` d ON p.`id_order_detail` = d.`id_order_detail` WHERE p.`shipping_number` = "'.pSQL($line['shipping_number']).'" AND p.`date_add` = "'.pSQL($line['date_add']).'" ') as $art) { $cpt++; $i++; $data_rows = array( array(1, 1, 'A', 'CODFIC', 'A'), array(2, 1, 'A', 'CODENR', '1'), array(3, 1, 'A', 'SSCODE', '1'), array(4, 2, 'A', 'MARQUE', 'F1'), array(6, 8, 'A', 'NEXPE', $line['expedition_number']), array(14, 2, 'N', 'SEQCAR', $i), array(16, 1, 'N', 'CODART', '1'), array(17, 1, 'A', 'FILLER', ''), array(18, 5, 'N', 'QTART', (int) $art['quantity']), array(23, 28, 'A', 'LIB', $art['product_name']), array(51, 7, 'N', 'POIDS', (int) (Db::getInstance()->getValue(' SELECT `weight` FROM `'._DB_PREFIX_.'product` WHERE `id_product` = '.(int) $art['product_id'].' ') * $mr_account_details['MR_WEIGHT_COEFFICIENT'])), array(58, 5, 'N', 'VOLUME', '0'), array(63, 3, 'N', 'LONG', '0'), array(66, 2, 'N', 'NBCOLI', '1'), array(68, 5, 'N', 'Filler', ''), array(73, 1, 'A', 'Filler', ''), array(74, 1, 'A', 'Filler', ''), array(75, 1, 'A', 'TOPSE1', ''), array(76, 5, 'N', 'QTESE1', ''), array(81, 1, 'A', 'TOPSE2', ''), array(82, 5, 'N', 'QTESE2', ''), array(87, 1, 'A', 'TOPSE3', ''), array(88, 5, 'N', 'QTESE3', ''), array(93, 1, 'A', 'TOPSE4', ''), array(94, 5, 'N', 'QTESE4', ''), array(99, 1, 'A', 'TOPSE5', ''), array(100, 5, 'N', 'QTESE5', ''), array(105, 1, 'A', 'TOPSE6', ''), array(106, 5, 'N', 'QTESE6', ''), array(111, 1, 'A', 'TOPSE7', ''), array(112, 5, 'N', 'QTESE7', ''), array(117, 1, 'A', 'TOPSE8', ''), array(118, 5, 'N', 'QTESE8', ''), array(123, 378, 'A', 'libre', '') ); $result .= addRows($data_rows); // $result .= 'A11' // .'F1' // .$line['expedition_number'] // .sprintf('%02d', $i) // .'1' // .' ' // .sprintf('%05d', (int) $art['quantity']) // .mb_substr($art['product_name'], 0, 28) // .sprintf('%07d', (int) (Db::getInstance()->getValue(' // SELECT `weight` // FROM `'._DB_PREFIX_.'product` // WHERE `id_product` = '.(int) $art['product_id'].' // ') * $mr_account_details['MR_WEIGHT_COEFFICIENT']) ) // .'00000' // .'000' // .'01' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // .' ' // ."\n"; } } $data_rows = array( array(1, 1, 'A', 'CODFIC', 'A'), array(2, 1, 'A', 'CODENR', '0'), array(3, 3, 'A', 'SOCEMET', 'MR '), array(6, 3, 'A', 'SOCDEST', 'FRA'), array(9, 5, 'N', 'SEQFIC', 1), array(14, 7, 'N', 'NBENR', $cpt + 1), array(21, 10, 'DT', 'DTTRAN', date('d.m.Y')), array(31, 5, 'A', 'VERSION', '04.00'), array(36, 965, 'A', 'libre', ''), ); $data = addRows($data_rows); $data .= mb_substr($result, 0, -1); // $data = 'A0FRAMR 00001' // .sprintf('%07d', $cpt + 1) // .date('d.m.Y') // .'04.00' // .str_pad(' ', 965) // ."\n" // .mb_substr($result, 0, -1); $fileName = 'dpc.D' . date('ymd') . 'H' . date('His') . '.txt'; // $fileName = 'dpc.test.txt'; $repo_dpc = dirname(__FILE__) . '/dpc/'; $repo_archive = dirname(__FILE__) . '/archives/dpc/'; $repo_paths = array(date('Y'), date('m')); foreach ($repo_paths as $repo_path) { $repo_archive .= $repo_path . '/'; if (!file_exists($repo_archive)) mkdir($repo_archive); } // file_put_contents($repo_dpc . $fileName, "\xEF\xBB\xBF".utf8_encode($w1252_data)); // file_put_contents($repo_archive . $fileName, "\xEF\xBB\xBF".utf8_encode($w1252_data)); // file_put_contents($repo_dpc . $fileName, mb_convert_encoding($data, "WINDOWS-1252", "UTF-8")); // file_put_contents($repo_archive . $fileName, mb_convert_encoding($data, "WINDOWS-1252", "UTF-8")); // file_put_contents($repo_dpc . $fileName, $data); // file_put_contents($repo_archive . $fileName, $data); $iconv = iconv('UTF-8', 'Windows-1252//TRANSLIT', $data); if (!$iconv) $iconv = $data; file_put_contents($repo_dpc . $fileName, $iconv); file_put_contents($repo_archive . $fileName, $iconv); } // echo 'A0FRAMR00001'.sprintf('%07d', $cpt + 1).date('d.m.Y').'04.00'."\n".mb_substr($result, 0, -1); // SEND TO FTP $mr_ftp_conf = Configuration::getMultiple(array( 'MONDIALRELAYWS_FTP_HOST', 'MONDIALRELAYWS_FTP_LOGIN', 'MONDIALRELAYWS_FTP_PASSWORD' )); $id_ftp = ftp_connect($mr_ftp_conf['MONDIALRELAYWS_FTP_HOST']); if (!ftp_login($id_ftp, $mr_ftp_conf['MONDIALRELAYWS_FTP_LOGIN'], $mr_ftp_conf['MONDIALRELAYWS_FTP_PASSWORD'])) die('erreur lors de l\'identification FTP'.chr(10).chr(10)); // //activation du mode passif // // if (!ftp_pasv($id_ftp, true)) // // die('erreur lors de l\'activation du mode passif'.chr(10).chr(10)); $repo_dpc = dirname(__FILE__) . '/dpc/'; $mr_repo_in = 'versmrelay/'; //envoie du fichier $list = scandir($repo_dpc); foreach($list as $file) { if (!preg_match('/^dpc\..+\.txt$/', $file)) continue; if ($file == '.' || $file == '..') continue; if (!ftp_put ($id_ftp, $mr_repo_in . $file, $repo_dpc . $file, FTP_BINARY)) print('erreur lors de l\'ouverture du fichier : ' . $file . chr(10)); else unlink($repo_dpc . $file); } ftp_close($id_ftp);