Location: PHPKode > scripts > Txt Xtrator > leiame.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>TxtXtrator: Classe para extração de dados de arquivos texto.</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
      <h3>Documentação</h3>
      <h1>TxtXtrator</h1>
      <h2>Classe para extração de dados de arquivos texto.</h2>
      <hr>
      <h2>Conteúdo</h2>
      <ol>
          <li>
              <a href="#overview">Overview</a>
          </li>
          <li>
              <a href="#example">Exemplo básico</a>
          </li>
          <li>
              <a href="#template">Template</a>
          </li>
          <li>
              <a href="#config-options">Opções de configuração</a>
          </li>
          <li>
              <a href="#method">Métodos</a>
          </li>
          <li>
              <a href="#files">Arquivos</a>
          </li>
          <li>
              <a href="#more-info">Mais informações</a>
          </li>
          <li>
              <a href="#licencing">Licenciamento</a>
          </li>
      </ol>
      <hr />
      <a name="overview"></a>
      <a href="#">Voltar ao conteúdo</a>
      <h1>Overview</h1>
          <p>TxtXtrator é uma classe PHP que oferece ferramentas para extração, tratamento e conversão de arquivos texto com dados no formato de colunas com largura fixa, CSV (texto separados por vírgula ou ponto-e-vírgula) ou relatórios em modo texto.</p>
          <p>Os dados extraídos com TxtXtrator podem ser transformados em Array PHP, JSON, CSV, SQL ou tabela HTML.</p>
          <p>Os dados convertidos podem ser simplismente retornados pela classe, exibidos no browser ou salvos em arquivos, diretamente no HD ou disponibilizado para download.</p>
      <hr />
      <a name="example"></a>
      <a href="#">Voltar ao conteúdo</a>
      <h1>Exemplo</h1>
      <h4>Arquivo exemplo.php</h4>
      <pre>
          <?php
            function noSpace($string){//função aplicada para tratar dados (ver template.json)
                $string = trim($string);
                return $string;
            }

            require 'TxtXtrator.class.php';//carrega o arquivo da classe TxtXtrator
            $TxtXtrator = new TxtXtrator();//instancia a classe TxtXtrator()
            $filename = 'CREDORSMALL.TXT';//define o nome do arquivo a ser "lido"
            $TxtXtrator->loadFile($filename);//"Lê" o arquivo para $TxtXtrator
            $TxtXtrator->loadTpl('C:/Users/Everton/Documents/My Dropbox/projects/txt-xtrator/credorsmall.json');//carrega o template
            $TxtXtrator->setCsvSeparator(';');//define o separador de colunas para dados CSV
            $TxtXtrator->xtract();//extrai os dados
            $TxtXtrator->setOutputType('sql');//define o tipo de saída
            $TxtXtrator->setLineBreakType('windows');//define o tipo de quebra de linha
            $TxtXtrator->output();//transforma os dados extraídos no formato de saída configurado por setOutputType()
            $TxtXtrator->show();//exibe os dados transformados no browser
            $TxtXtrator->export();//exporta os dados de forma a serem salvos em arquivo
            $TxtXtrator->download();//realiza o download dos dados em arquivo
            $TxtXtrator->file('C:/Users/Everton/Documents/My Dropbox/projects/txt-xtrator/teste.txt');//salva os dados diretamente em arquivo
          ?>
      </pre>
      <h4>Arquivo template.json</h4>
      <pre>
      {
        "firstRow":0//define a linha pela qual se iniciará a importação
        ,"rowLen":236//define o tamanho da linha para arquivos-fonte com largura fixa
        ,"fileType":"fixed"//define o tipo de arquivo-fonte
        ,"sqlTable":"credores"//nome da tabela para outputType = sql
        ,"cm":[//define o modelo de coluna (col model)
                {
                    "ref":"cod"//referência da coluna (obrigatório)
                    ,"start":0//caractere de início da coluna (obrigatório)
                    ,"len":10//tamanho em caracteres da coluna (obrigatório)
                    ,"sqlName":"id"//nome de coluna a ser utilizado com SQL
                },{
                    "ref":"nome"
                    ,"start":10
                    ,"len":60
                    ,"fn":"noSpace"//função a ser acionada para tratar os dados
                },{
                    "ref":"cpfcnpj"
                    ,"start":70
                    ,"len":14
                },{
                    "ref":"cgcte"
                    ,"start":84
                    ,"len":15
                },{
                    "ref":"endereco"
                    ,"start":114
                    ,"len":50
                    ,"fn":"noSpace"
                },{
                    "ref":"cidade"
                    ,"start":164
                    ,"len":30
                    ,"fn":"noSpace"
                },{
                    "ref":"uf"
                    ,"start":194
                    ,"len":2
                },{
                    "ref":"cep"
                    ,"start":196
                    ,"len":8
                },{
                    "ref":"fone"
                    ,"start":204
                    ,"len":15
                },{
                    "ref":"fax"
                    ,"start":219
                    ,"len":15
                },{
                    "ref":"tipo"
                    ,"start":234
                    ,"len":2
                }
            ]
        }
      </pre>
      <hr />
      <a name="template"></a>
      <a href="#">Voltar ao conteúdo</a>
      <h1>Template</h1>
      <p>Template é a denominação dada à configuração estruturada do arquivo-fonte de dados que contém parâmetros para a interpretação do arquivo e o modelo de coluna, utilizado para interpretar cada coluna de dados.</p>
      <p>A configuração de template deve ser armazenada no formato JSON, em um arquivo texto (sugere-se a extenção .json).</p>
      <p>A estrutura do template é a seguinte (com valores de exemplo):</p>
      <pre>
          {
            "firstRow":0
            ,"countRow":100
            ,"rowLen":50
            ,"fileType":"fixed"
            ,"sqlTable":"nome_tabela"
            ,"csvSeparator":";"
            ,"cm":[
                {
                    "ref":"campo1"
                    ,"start":0
                    ,"len":5
                    ,"sqlName":"campo_1"
                    ,"fn":"nomeFuncao1"
                },{
                    "ref":"campo2"
                    ,"start":5
                    ,"len":10
                    ,"sqlName":"campo_2"
                    ,"fn":"nomeFuncao2"
                }
            ]
          }
      </pre>
      <h2>Opçoes de configuração</h2>
      <dl>
          <dt><i>integer</i> firstRow</dt>
          <dd><i>(Opcional)</i> Indica a partir de qual linha do arquivo-fonte os dados começarão a serem importados. O valor padrão é 0 (zero), equivalente à primeira linha.</dd>
          <dt><i>integer</i> rowLen</dt>
              <dd><i>(Obrigatório se filetype = 'fixed')</i> Indica o tamanho, em caracteres, de cada linha para que ela seja importada. Linhas com tamanho menor ou maior que o definido em <i>rowLen</i> serão ignoradas. <i>rowLen</i> somente é válido se <i>fileType</i> for igual a 'fixed'.</dd>
          <dt><i>string</i> fileType</dt>
              <dd><i>(Obrigatório)</i> Indica o tipo de arquivo-fonte que será processado. Admite 'fixed' para arquivos texto com largura fixa (e ralatórios mal-formatados) e 'csv' para arquivos CSV.</dd>
          <dt><i>string</i> sqlTable</dt>
              <dd><i>(Obrigatório se outputType = 'sql')</i> Indica o nome de tabela para ser utilizado em saídas SQL.</dd>
          <dt><i>string</i> csvSeparator</dt>
              <dd><i>(Obrigatório se outputType = 'csv' ou fileType = 'csv')</i> Indica o caractere que será utilizado como separador de campos quando outputType = 'csv' ou fileType = 'csv'.</dd>
          <dt><i>integer</i> countRow</dt>
              <dd><i>(Opcional)</i> Indica a quantidade de linhas que serão lidas no arquivo-fonte para importação. Útil para não importar todos os registros ou para implementar algum tipo de paginação, por exemplo.</dd>
          <dt><i>array</i> cm</dt>
              <dd><i>(Obrigatório)</i> Armazena a configuração das colunas (colummn model).</dd>
          <dt><i>string</i> ref</dt>
              <dd><i>(Obrigatório)</i> Indica o nome da coluna.</dd>
          <dt><i>integer</i> start</dt>
              <dd><i>(Obrigatório se fileType = 'fixed')</i> Indica o caractere de início da coluna (o primeiro caractere de cada linha é 0 (zero).</dd>
          <dt><i>integer</i> len</dt>
              <dd><i>(Obrigatório se fileTupe = 'fixed')</i> Indica o tamanho da coluna em caracteres.</dd>
          <dt><i>string</i> sqlName</dt>
              <dd><i>(Opcional)</i> Indica o nome da coluna para outputType = 'sql'. Se ausente <i>ref</i> será usado.</dd>
          <dt><i>string</i> fn</dt>
              <dd><i>(Opcional)</i> Indica o nome de uma função que será chamada para tratar os dados da coluna. Essa função recebe o valor da intersecção LinhaxColuna (célula) e deve retornar o valor a ser armazenado an intersecção.</dd>
      </dl>

      <hr />
      <a name="config-options"></a>
      <a href="#">Voltar ao conteúdo</a>
      <h1>Opções de configuração</h1>
      <p>Ao instanciar a classe TxtXtrator(), é possível configurar algumas de suas propriedades através de um <i>array</i>.</p>
      <p>Tenha em mente que qualquer configuração feita desta forma será sobreescrita ao carregar um template.</p>
      <h2>Opções disponíveis</h2>
      <ul>
          <li>outputType</li>
          <li>fistRow</li>
          <li>countRow</li>
          <li>rowLen</li>
          <li>fileType</li>
          <li>csvSeparator</li>
          <li>lineBreakType</li>
          <li>sqlTable</li>
      </ul>
      <h2>Descrição das opções de configuração</h2>
      <dl>
          <dt>outputType</dt>
          <dd>Indica o tipo de saída para os dados extraídos. Aceita os valores <i>array</i>, <i>json</i>, <i>csv</i>, <i>sql</i> e <i>html</i>.</dd>
          <dt>firstRow</dt>
          <dd>Veja <i>firstRow</i> nas configurações de Template.</dd>
          <dt>countRow</dt>
          <dd>Veja <i>countRow</i> nas configurações de Template.</dd>
          <dt>rowLen</dt>
          <dd>Veja <i>rowLen</i> nas configurações de Template.</dd>
          <dt>fileType</dt>
          <dd>Veja <i>fileType</i> nas configurações de Template.</dd>
          <dt>csvSeparator</dt>
          <dd>Veja <i>csvSeparator</i> nas configurações de Template.</dd>
          <dt>lineBreakType</dt>
          <dd>Indica o tipo de quebra de linha a ser utilizada. Aceita os valores <i>linux</i>, <i>windows</i> e <i>html</i>.</dd>
          <dt>sqlTable</dt>
          <dd>Veja <i>sqlTable</i> nas configurações de Template.</dd>
      </dl>

      <hr />
      <a name="method"></a>
      <a href="#">Voltar ao conteúdo</a>
      <h1>Métodos públicos</h1>
      <dl>
          <dt>__construct(array $config)</dt>
          <dd>Construtor da classe. Recebe em $config um array com configurações. Retorna void.</dd>
          <dt>loadFile(string $filename)</dt>
          <dd>Lê o conteúdo do arquivo passado por $file, retornando true no caso de sucesso e false no caso de falha.</dd>
          <dt>loadTpl(string $tpl)</dt>
          <dd>Lê o conteúdo do arquivo de Template passado por $tpl e retorna true ou false em caso de sucesso ou falha.</dd>
          <dt>xtract()</dt>
          <dd>Extrai os dados do arquivo carregado por loadFile() de acordo com o template. Retorna true ou false, caso sucesso ou falha.</dd>
          <dt>output()</dt>
          <dd>Formata os dados extraídos para um dos formatos de saída, conforme definido na propriedade outputType. Retorna true ou false, conforme haja sucesso ou falha.</dd>
          <dt>getLastError()</dt>
          <dd>Retorna um array contendo o último erro registrado no log de erros.</dd>
          <dt>getErrors()</dt>
          <dd>Retorna o log de erros compelto, no formato de um array.</dd>
          <dt>get()</dt>
          <dd>Retorna um array com as linhas dos dados formatados de acordo com outputType.</dd>
          <dt>show()</dt>
          <dd>Exibe no brouxer os dados formatados conforme outputType. Retorna true ou false, se sucesso ou falha.</dd>
          <dt>download()</dt>
          <dd>Disponibiliza o download de um arquivo contendo os dados formatados, desde que outputType seja json, csv, sql ou html. Deve ser chamado antes de qualquer comando echo do PHP ou qualquer envio de conteúdo para o browser. Esta função é influenciada por lineBreakType. Retorna true ou false.</dd>
          <dt>file(string $filename)</dt>
          <dd>Escreve os dados formatados conforme outputType desde que outputType seja diferente de array ou html. Os dados são escritos no arquivo passado em $filename. Esta função é influenciada por lineBreakType. Retorna true ou false.</dd>
          <dt>Métodos set</dt>
          <dd>Os métodos set são funções para atribuir valor às propriedades da classe.</dd>
          <ul>
              <li>setOutputType(string $outputType)</li>
              <li>setFirstRow(integer firstRow)</li>
              <li>setCountRow(integer $countRow)</li>
              <li>setRowLen(integer $rowLen)</li>
              <li>setFileType(string $fileType)</li>
              <li>setCsvSeparator(string $csvSeparator)</li>
              <li>setLineBreakType(string $lineBreakType)</li>
              <li>setSqlTable(string $sqlTable)</li>
          </ul>
          <dt>Métodos get</dt>
          <dd>Os métodos get são funções para retornar o valor das propriedades da classe.</dd>
          <ul>
              <li>getOutputType()</li>
              <li>getFirstRow()</li>
              <li>getCountRow()</li>
              <li>getRowLen()</li>
              <li>getFileType()</li>
              <li>getCsvSeparator()</li>
              <li>getLineBreakType()</li>
              <li>getSqlTable()</li>
          </ul>
      </dl>
      <hr />
      <a name="files"></a>
      <a href="#">Voltar ao conteúdo</a>
      <h1>Arquivos da classe</h1>
      <p>a classe TxtXtract() possui um único arquivo chamado TxtXtrator.class.php que pode ser utilizado através de include() ou require() ou ainda require_once() ou include_once().</p>
      <p>além disso, o diretório "examples" contém exemplos de utilização.</p>
      <hr />
      <a name="more-info"></a>
      <a href="#">Voltar ao conteúdo</a>
      <h1>Mais informações</h1>
      <p>Mais informações, críticas ou sugestões, além de aprimoramentos podem ser conseguidos com o desenvolvedor através do email hide@address.com</p>
      <hr />
      <a name="licencing"></a>
      <a href="#">Voltar ao conteúdo</a>
      <h1>Licença</h1>
      <p>TxtXtract é distribuído sob a GPL, cuja cópia está no arquivo gpl-3.0.txt.</p>
  </body>
</html>
Return current item: Txt Xtrator