Ocasião
Por alguns motivos, precisamos lidar com importações ou exportações de dados. Os formatos de arquivo aprovados e conhecidos são json, csv ou xml. No meu caso No meu caso, muitas vezes preciso traduzir CSV do Excel para dados json.
Portanto, escrevi uma classe de php baseada em perfil simples que é capaz de lidar com arquivos CSV e JSON chamada ImpEx .
Detalhes sobre ImpEx
ImpEx está gerenciando perfis como funções anônimas. Cada perfil recebe o objeto ImpEx atual e os dados do perfil anterior e retorna os dados processados. Todos os perfis serão executados por ordem de execução.
Alguma ação
<?php
//attach profiles
$impEx->addProfile('json.import', function($impEx,$data){
$data = $impEx->importFromJson(dirname(__FILE__) . '/data/import_address.json');
$newData = array();
foreach ($data as $key => $value) {
$street = $addressArray[0];
$postalcode = $addressArray[2];
$city = $addressArray[1];
$newData[] = array(
'postalcode' => mb_convert_encoding($postalcode, 'ISO-8859-1'),
'city' => mb_convert_encoding($city, 'ISO-8859-1'),
'street' => mb_convert_encoding($street, 'ISO-8859-1'),
);
}
//
return $newData;
});
$impEx->addProfile('csv.export', function($impEx,$data){
$filename = dirname(__FILE__) . '/data/export_address.csv';
$impEx->exportToCSV($filename,$data,ImpEx::CSV_DELIMITER_EXCEL, ImpEx::CSV_ENCLOSURE, true);
});
//executeprofiles
$impEx
->executeProfile('olddata.json.import')
->executeProfile('olddata.csv.export');
?>