Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Chaves

[Resolvido] Trim() não está cumprindo seu papel

Recommended Posts

Ola, caros,

 

Estou importando informações de um arquivo TXT e procurando por uma expressão.

 

//Arquivo que será lido
$txt = "Arquivo.txt";
//Abre o arquivo
//"r" significa que o arquivo foi aberto apenas para leitura
$abre = fopen($txt, "r");
//Lê o conteúdo do arquivo
$dados = fread($abre, filesize($txt));
//Fecha o arquivo
fclose($abre);
//Explode o contúdo do arquivo
$linha = explode("\n", $dados);

//Separa o cabeçalho
$cabecalho = explode(",", $linha[0]);
$data = Trim($cabecalho[0]);
$local = Trim($cabecalho[1]);

//Expressão a ser pesquisada
       $pesquisa = "Nome_Pesquisar";

//Percorre as linhas do txt a partir da segunda linha
for($i = 1; $i <= count($linha); $i++) 
 {
	//Explode os dados de cada linha
	$separa = explode("|", $linha[$i]);
	//Jogador
	$jogador = $separa[3];
	$jogador = Trim($jogador);
	//Grava a posição da linha quando encontrar a expressão
	if (substr($jogador,0,strlen($pesquisa)) == $pesquisa)
	{
		$posicao = $i;
	}
 }

 

O problema é que o Trim($jogador) está retornando uma string de tamanho 31, por exemplo, quando deveria ser 12 e desta forma não consigo comparar as expressões e importar os dados da linha em questão.

 

Já tentei tirar os espaços de outra forma com o uso do preg_replace(), substituindo espaço por vazio, mas mesmo assim não funcionou. É como se tivessem caracteres entre os caracteres (?!) e isso eu honestamente nunca vi.

 

PHP não é minha área e já não sei mais o que fazer.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, não é apenas de espaços que vivem os caracteres em branco.

Você pode tentar o seguinte:

 

$string = preg_replace( '/([\s]{2,}|\t|\r|\n)/' , '' , $var );

 

Há caracteres como tabs, retornos de linha, escapes, etc. Você pode verificar a existência deles através de algo como:

 

echo '<pre>';
echo file_get_contents( $txt );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matheus,

 

Sua observação foi válida, mas já tinha tentado uma solução parecida por instinto e que não funcionou, diga-se.

 

Acabei descobrindo que o arquivo na verdade era um RTF que estavam simplesmente mudando a extensão para TXT. Baixei uma classe que convertia o arquivo para um XML e está funcionando. Imagino que o problema toda tenha sido o arquivo RTF.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.