Я импортирую и читаю TXT-файл с PHP, используя fopen. Но между каждой буквой в файле TXT появляется один странный символ, и я попытался найти здесь некоторые решения, но я не смог найти.
Вот мой код:
<?php
mysqli_query($sConn,"DELETE FROM cnpjPrincipal");
$myfile = fopen("Arquivos/1.txt", "r") or die("Unable to open file!");
$nLine = 0;
//*************************************************************************************//
while(!feof($myfile)&&$nLine<5){
$sLine = fgets($myfile);
if(substr($sLine, 1, 1)=="1"){
$nLine += 1;
echo "Position 1: '".fCutString($sLine, 0, 1)."' <br/>";
echo "Position 2: '".fCutString($sLine, 1, 1)."' <br/>";
echo "Position 3: '".fCutString($sLine, 2, 1)."' <br/>";
echo "Position 4: '".fCutString($sLine, 3, 14)."' <br/>";
echo "Position 18: '".fCutString($sLine, 17, 1)."' <br/>";
echo "Position 19: '".fCutString($sLine, 18, 150)."' <br/>";
echo "Position 169: '".fCutString($sLine, 168, 55)."'<br /><br />";
echo $sLine."<br /><br />";
echo mb_detect_encoding($sLine)."<br /><br />";
}
}
//*************************************************************************************//
fclose($myfile);
//*************************************************************************************//
function fCutString($sString, $nStart, $nEnd){
return substr($sString, $nStart, $nEnd);
};
?>
Затем я попытался используйте:
<?php
// Solution 1
$sLine = mb_convert_encoding(fgets($myfile),mb_detect_encoding(fgets($myfile, mb_detect_order(), true)),"UTF-8");
// Solution 2
$sLine = iconv(mb_detect_encoding(fgets($myfile), mb_detect_order(), true), "UTF-8", fgets($myfile));
// Solution 3
$sLine = utf8_encode(fgets($myfile));
?>
Но любое решение работало. Вкл. HTML приносит:
Position 1: ''
Position 2: '1'
Position 3: ''
Position 4: 'F 01772'
Position 18: '2'
Position 19: '210001401ALEXANDRE TABORDA GOULART '
Position 169: ' '
Full Line: 1F 017722210001401ALEXANDRE TABORDA GOULART 042019032263 2135199704155819100AVENIDA DR CARLOS BARBOSA 233 ANDAR 1 AZENHA 90880001RS8801PORTO ALEGRE 51 34444882 50000000000000000182007070120161231N F
ASCII
Когда я открываю сгенерированный HTML, откройте так: HTML
Я поставил функцию, чтобы сообщить кодировка, которая показывает мне, что это ASCII. Я получаю файл от правительства, и я пытаюсь разделить информацию по позициям, но поскольку у меня есть странные символы между буквами, они дают мне неверную информацию. Файл TXT поставляется как UNICODE. Кто-то уже пытался что-то исправить? Заранее спасибо!