Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos, tudo bom?
Venho com um problema bem incomum visto por mim. É o seguinte:
Estou trabalhando com extratos bancários, mais precisamente extratos do tipo OFC (extensão .ofc). Preciso ler esses arquivos e trabalhar em cima do seus dados, e aí que está o problema, pois eu não consigo resgatar os valores do arquivo.
Para vocês terem uma ideia, quando eu resgato os valores com o file_get_contents e dou um echo (bom e velho debug), o arquivo me retorna o seguinte:
2 1252 001 932-6 00000332895 0 20130610 20130703 -43.13 1 20130701 -0.09 20130701190 91100701 Cobrança de I.O.F.
Porém se eu der o var_dump(), a estrutura apresentada é exatamente a mesma do arquivo.
Ou seja:
echo file_get_contents($arquivoVindoDoFormulario); // Erro
var_dump(file_get_contents($arquivoVindoDoFormulario)); // Me retorna a estrutura correta
Para quem não sabe, a estrutura de um arquivo OFC é a seguinte:
<OFC>
<DTD>2</DTD>
<CPAGE>1252</CPAGE>
<ACCTSTMT>
<ACCTFROM>
<BANKID>001</BANKID>
<BRANCHID>932-6</BRANCHID>
<ACCTID>00000332895</ACCTID>
<ACCTTYPE>0</ACCTTYPE>
</ACCTFROM>
<STMTRS>
<DTSTART>20130610</DTSTART>
<DTEND>20130703</DTEND>
<LEDGER>-43.13</LEDGER>
<STMTTRN>
<TRNTYPE>1</TRNTYPE>
<DTPOSTED>20130701</DTPOSTED>
<TRNAMT>-0.09</TRNAMT>
<FITID>20130701190</FITID>
<CHKNUM>91100701</CHKNUM>
<MEMO>Cobrança de I.O.F.</MEMO>
</STMTTRN>
</STMTRS>
</ACCTSTMT>
</OFC>
Alguém sabe o que pode ser?
Caso seja necessário mais algum detalhe por favor, me comunique.
Agradeço a atenção de todos. Vlw
Opa, muito obrigado pelo retorno Carlos!
O único problema é que tenho que converter o arquivo para XML. Valeu mesmo pela força, abraços
O único problema é que tenho que converter o arquivo para XML.
Não necessariamente.
$filename = 'file.ofc';
$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->preserveWhiteSpace = false;
$DOMDocument->formatOutput = true;
$DOMDocument->loadXML( utf8_encode( file_get_contents( $filename ) ) );
var_dump( $DOMDocument->getElementsByTagName( 'MEMO' )->item( 0 )->nodeValue );
Saída
string 'Cobrança de I.O.F.' (length=18)
:thumbsup:
Use DOMDocument.
Exemplo :seta: http://forum.imasters.com.br/topic/502217-editar-xml/