Ir para conteúdo

POWERED BY:

Arquivado

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

Danilo Ferreira

Comparar Texto com php

Recommended Posts

Olá pessoal

 

preciso de uma ajuda de vcs, gostaria de saber como posso comparar texto com php, fazendo um SELECT no banco e comparar com uma lista por exemplo .txt, ou seja faço um upload de um arquivo e comparo esse arquivo com o banco de dados.

 

Fico no aguardo.

 

 

Danilo Ferreira

Compartilhar este post


Link para o post
Compartilhar em outros sites

gostaria de saber como posso comparar texto com php, fazendo um SELECT no banco e comparar com uma lista por exemplo .txt

 

Danilo, você pode fazer isso usando as funções de matriz.

 

Quando você faz uma consulta em uma tabela, por exemplo:

mysql> select * from cores;
+----+----------+
| id | nome 	|
+----+----------+
| 1 | Verde	|
| 2 | Amarelo |
| 3 | Azul 	|
| 4 | Branco |
| 5 | Vermelho |
| 6 | Preto	|
| 7 | Laranja |
+----+----------+
7 rows in set (0.00 sec)

Supondo que você tenha um arquivo chamado cores.txt com o seguinte conteúdo:

Verde

Amarelo

Azul

Laranja

 

O primeiro passo é fazer a consulta no PHP:

$cores = array();

if ( ( $res = mysql_query( 'SELECT * FROM `cores` ORDER BY `nome` DESC;' ) ) !== false ){
while ( ( $row = mysql_fetch_array( $res , MYSQL_ASSOC ) ) !== false ){
	$cores[] = $row[ 'nome' ];
}

mysql_free_result( $res );
}

 

Com os resultados gravados na matriz $cores você precisa agora ler o arquivo cores.txt:

$arquivo = file( 'cores.txt' , FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );

 

A função file vai pegar o conteúdo do arquivo cores.txt e colocar em uma matriz onde cada linha do arquivo é uma linha da matriz, agora é só comparar:

 

$diferenca = array_diff( $cores , $arquivo );

print_r( $diferenca );

 

A saída deverá ser:

Vermelho

Preto

Branco

 

Juntando tudo:

$cores = array();
$arquivo = file( 'cores.txt' , FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );

if ( ( $res = mysql_query( 'SELECT * FROM `cores` ORDER BY `nome` DESC;' ) ) !== false ){
while ( ( $row = mysql_fetch_array( $res , MYSQL_ASSOC ) ) !== false ){
	$cores[] = $row[ 'nome' ];
}

mysql_free_result( $res );
}

vprintf( 'As cores da bandeira do maior time Brasil são %s, %s e %s' , array_diff( $cores , $arquivo ) );

 

Links:

http://br2.php.net/manual/en/function.array-diff.php

http://br.php.net/manual/en/function.file.php

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.