Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos, eis uma Questão preciso de uma ajuda. o codigo esta funcionando Perfeito, mas preciso de uma ajuda para fazer o cod ignorar a primeira e ultima linha do arquivo de TXT, que e um arquivo de Retorno de BANCOS onde nao tem CABEÇALHOS, apenas informacoes sobre o arquivo que podem ser ignorados.
LEMBRANDO QUE O ARQUIVO NAO POSSUI NENHUM SEPARADOR(,;| ) nenhum apenas espaços e caracteres
Segue o Modelo do Arquivo TXT, arquivo RET do BANCO
SEGUE CODIGO PHP
<?php require_once('../Connections/localhost.php'); ?>
<?php
$file = fopen("DBT92714_5.RET","r");
$data = date('Y-m-d');
while (!feof($file))
{
$linha = fgets($file);
// troque aqui pelo tamanho conveniente de linha
$idcliente = trim(substr($linha, 77, 9));
$ano = trim(substr($linha, 44, 4));
$mes = trim(substr($linha, 48, 2));
$dia = trim(substr($linha, 50, 2));
$valor_debito = trim(substr($linha, 52, 13));
$valor_decimal = trim(substr($linha, 65, 2));
$situacao = trim(substr($linha, 67, 2));
$refano = trim(substr($linha, 69, 4));
$refmes = trim(substr($linha, 73, 2));
$refdia = trim(substr($linha, 75, 2));
$codmensalidade = trim(substr($linha, 86, 8));
$banco_futuro = trim(substr($linha, 139, 10));
// Continue até capturar todos os campos
// Aqui entram as queries de gravação, consulta, etc
$query = "SELECT * FROM tb_mensalidades WHERE id='$codmensalidade'";
$result = mysql_query($query) or die(mysql_error());
$total_results = mysql_num_rows($result);
if($total_results == 0) {
mysql_query("INSERT INTO tb_mensalidades (id, contrato, formadepagamento, mes_refencia, data_pagamento, valor, pago, alt_data, cad_data, controle) VALUES ('$codmensalidade', '$idcliente', '2', '$refano-$refmes-$refdia', '$ano-$mes-$dia', '$valor_debito.$valor_decimal', '$situacao', '$data', '$data', '1') ON DUPLICATE KEY UPDATE controle='1'+1") or die(mysql_error());
echo "REGISTRO INSERIDO COM SUCESSO. <br />";
}mysql_query("UPDATE tb_mensalidades SET contrato='$idcliente', formadepagamento='2', mes_refencia='$refano-$refmes-$refdia', data_pagamento='$ano-$mes-$dia', valor='$valor_debito.$valor_decimal', pago='$situacao', alt_data='$data', user_alt='ALTERADO AUTOMATICAMENTE' WHERE id='$codmensalidade'") or die(mysql_error());
echo "$codmensalidade - ATUALIZADO COM SUCESSO. <br />";
}?>
SEGUE CODIGO SQL DA TABELA
CREATE TABLE `tb_mensalidades` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`contrato` int(11) NOT NULL,
`formadepagamento` int(11) NOT NULL,
`mes_refencia` date NOT NULL DEFAULT '0000-00-00',
`data_pagamento` date NOT NULL DEFAULT '0000-00-00',
`valor` double(10,2) NOT NULL DEFAULT '0.00',
`pago` int(11) DEFAULT NULL,
`user_cad` varchar(50) NOT NULL DEFAULT 'IMPORTACAO AUTOMATICA',
`user_alt` varchar(50) NOT NULL DEFAULT 'IMPORTACAO AUTOMATICA',
`observacoes` longtext,
`alt_data` date NOT NULL DEFAULT '0000-00-00',
`cad_data` date NOT NULL DEFAULT '0000-00-00',
`controle` tinyint(3) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `Novo Índice` (`contrato`,`mes_refencia`,`data_pagamento`,`controle`)
) ENGINE=MyISAM AUTO_INCREMENT=883 DEFAULT CHARSET=latin1;Carregando comentários...