Ir para conteúdo

POWERED BY:

Arquivado

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

Tony Furtado

Atualização da exibição de uma Arquivo de texto

Recommended Posts

Ola só novo em PHP

To fazendo um site pra radio e nele tem "Vocês está ouvindo: nome da musica "

este nome da musica é pego de uma aquivo .txt que é enviado para o servidor pelo zaraFTP

http://oasisfm.com.br/CurrentSong.txt
de acordo com a musica

 

tendo invista isto fiz o seguinte código:

 

<?php

 

$musica = readfile("CurrentSong.txt");

 

?>

 

mais o problema é que quando a atualiza este código só atualiza se recarregar a pagina!

tem algum jeito dese código atualizar sem precisar carregar a pagina?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem sim, trabalhando com requisições do servidor tipo as notificações do Facebook, mas isto creio que seria bem complexo no seu caso.

 

Para resolver de forma bem simples, uma "gambiarra" na verdade, cria um arquivo html que vá exibir somente o nome da musica, por exemplo: musicaagora.php e nele coloca o código que você postou acima junto com um refresh, ou seja, para ele recarregar automaticamente a cada 5 segundos por exemplo:

 

<meta http-equiv="refresh" content="5;URL=http://www.seusite.com/musicaagora.php">

 

Ai no site, no lugar onde você quer exibir o nome da musica que está tocando chame esta pagina por iframe:

 

<IFRAME name=iframe marginWidth=0 marginHeight=0 src="http://seusite.com/musicaagora.php" frameBorder=0 width=300 height=60></IFRAME>

 

Assim ele vai atualizar esta pagina a cada 5 segundos ou o tempo que você quiser definir sem que o usuário precise recarregar.

 

Esta a forma mais simples, existem várias outras melhores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema "Lauro Daniel" e que eu coloquei o texto em um <marquee> (http://oasisfm.com.br/musica.php) ai fica meio esquisito no meio do nome passando ai vai da um "refresh" Será que não teria como vc me ajudar fazer em Ajax?

 

Também to tendo problemas com caraqueteres alguns não estão aparecendo tipo (ç á)

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema com caracteres pode ser resolvido da seguinte forma normalize tudo para UTF-8, banco de dados, paginas e arquivos XML.

Segue uns lnk's que explica o funcionamento de uma conexão ajax

 

http://imasters.com.br/artigo/3918/javascript/ajax-e-php-carregando-dados-sem-refresh/

 

com jquery:

http://api.jquery.com/jQuery.ajax/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim mais fico do mesmo jeito (Ex: Á, ê => �, )

================================================

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="pt-br" />
</head>
<body>
<!--Da refresh na pagina-->
<meta http-equiv="refresh" content="15; url=musica.php">
<marquee bgcolor="#00CC33" width=250 height=20 direction=left scrollamount=3 ate scrolldelay=10>
<b><font face="Arial, Helvetica, sans-serif" color="#333333">
<?php
$musica = readfile("CurrentSong.txt");
?>
- OasisFM 98,7
</font>
</marquee>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de tudo no código você coloca:

 

header('Content-Type: text/html; charset=utf-8');

 

Dentro as tags head o html você coloca:

 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Isto deve resolver o problema com caracteres.

 

Depois salve este arquivo como currentsong.php e crie o index com este código:

 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
var auto_refresh = setInterval(function (){
$('#id da div que mostrará a música atual').load('currentsong.php').fadeIn("slow");
}, 10000);

});
</script>

Coloque entre as tags head e crie uma div com o id que mostrará a música atual, a div dará refresh a cada 10s. Acho que deve dar certo, tenta aí...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atualizar sem recarregar a página, só se for via ajax... ou jquery...

 

 

 

 

$(function(){
    $('#sua_id').load('arquivo.txt');
});

ou

$(function(){
    $('#sua_id').html('arquivo.txt');
});

ou

$(function(){
    $.getScript('arquivo.txt');
});

<div id="sua_id"></div>

 

depende muito da sua necessidade, olhe a documentação do jQuery: http://api.jquery.com/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito amigo que o problema com os caracteres esteja no seu arquivo que esta o nome das musicas ele não esta no formato utf-8
uma solução simples para corigir este erro é convertelo para utf-8.

 

 

header('Content-Type: text/html; charset=utf-8');//Caso a pagina ja tenha a metatag de configuração de caracteres em utf-8 pode remover esta linha...
$lista = file_get_contents('lista.txt');//Pega o conteudo do arquivo da lista
echo utf8_encode($lista);//escreve o conteudo na tela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muuuuuito obrigado Ricardo Saraiva deu certo agora! => http://oasisfm.com.br/musica.php

 

<?php	
	#Pega o conteudo do arquivo da lista
	$nome_musica = file_get_contents('CurrentSong.txt');
	
	#Converte o arquico para utf-8
	$nome_musica = utf8_encode($nome_musica);
	
	#escreve o conteudo na tela
	echo $nome_musica;			
?>

 

Agora só falta eu descobrir como dar o "refresh" pq ainda não consegui! mais sou brasileiro não desisto nunca!

Não consegui fazer "ivanferrer" me manda mais instruções por gentileza, sou novato em PHP! dês de já agradeço aos colegas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para atualizar a lista é simples por um periodo tempo é simples user setInterval para definir o periodo de tempo e caso use jquery tem a função load que faz uma requisição ajax para trazer o conteudo de uma pagina ou arquivo.

 

Exemplo simples:

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>teste</title>
</head>
<body>
	
	<!-- Sua lista de musicas -->
	<div id="lista">
		texto inicial
	</div>

</body>
</html>

<script src="jquery.js"></script>
<script>
	$(document).ready(function(){
		/**
		*DEFINE UM INTERVALO PARA ATUALIZAR A LISTA DE MUSICA
		*O INTERVAULO É DEFINIDO EM MILESEGUNDOS
		*5000 = 5 SEGUNDOS...
		*/
		setInterval(function(){
			var lista = 'lista.txt';//arquivo com sua lista de musicas
			$('#lista').load(lista);//atualiza sua lista de musica
		},5000);
	});
</script>

 

No caso existe outra alternativa que acho melhor atualizar a lista quando termina um musica diminuindo o numero de requisições...

 

Caso seja necessario a atualização da lista em tempo real técnicas como long polling, comet seria mais viavel.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais eu tenho que criar algum arquivo "jquery.js"..??

por que eu fiz deste jeito mais mas não deu certo,.. :upset:

 

Antes de tudo no código você coloca:

 

header('Content-Type: text/html; charset=utf-8');

Dentro as tags head o html você coloca:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Isto deve resolver o problema com caracteres.

 

Depois salve este arquivo como currentsong.php e crie o index com este código:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script><script>$(document).ready(function(){var auto_refresh = setInterval(function (){$('#id da div que mostrará a música atual').load('currentsong.php').fadeIn("slow");}, 10000);});</script>

Coloque entre as tags head e crie uma div com o id que mostrará a música atual, a div dará refresh a cada 10s. Acho que deve dar certo, tenta aí...

 

 

 

 

Estudei um pouco sobre o que é "jQuery" ai agora deu certo,. Muito obrigado! que nem disse sou iniciante! mais acho que até que fico legal com ajudada de vocês! ==> http://oasisfm.com.br/musica.php

 

OBS.: Quando não tem musica tocando (só o locutor falando) o arquivo enviado pelo ZaraFTP torna-se em branco,

Através da função "if" eu tinha feito + ou - o seguinte:

<?php				$nome_musica = file_get_contents('CurrentSong.txt'); //Pega o conteúdo do arquivo .txt a	$nome_musica = utf8_encode($nome_musica); //Converte o arquivo para utf-8		if ($nome_musica == "") //Se não contiver nada no arquivo		echo "(((Locutor)))"; //mostar isso	else		echo $nome_musica; //caso contrario imprime o conteúdo na tela		?>

Mais agora que com este jQuery para da refresh não ta mas dando certo esta função que eu tinha feito!

Mas tudo bem, melhor que nada, já estou muito feliz de ter aprendido da refresh com jQuery,.. :yes:

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.