Ir para conteúdo
Fórum Script Brasil
  • 0

Fopen, Fread ....


rogerio_st

Pergunta

Galera,

Estou precisando de um código em javascript que leia um arquivo, mas precisa ser EXCLUSIVAMENTE em js, não posso usar php, asp, nem nenhuma outra linguagem que não rode no client.

O código mais próximo que eu consegui achar foi esse

<script language="JavaScript" type="text/javascript">
// This example shows file manipulation routines: it echoes
// the contents of itself (the script file).
// Created with Antechinus® JavaScript Editor
// Copyright© 2000-2005 C Point Pty Ltd

fh = fopen(getScriptPath(), 0);                       // Open the file for reading
if(fh!=-1)                                     // If the file has been successfully opened
{
    length = flength(fh);                                        // Get the length of the file    
    str = fread(fh, length);                               // Read in the entire file
    fclose(fh);                                                       // Close the file
                                           // Display the contents of the file    
    write(str);    
}
</script>

Mas não consegui fazer rodar.

Alguém pode me ajudar??

ABS

Rogerio

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

o JavaScript (client-side) poderia ler um arquivo gravado no micro do cliente.. mas como saber o nome dele ou outros detalhes?

com linguagem server-side voce pode fazer muito mais coisas alem de ler o conteudo do arquivo... (asp, php, .net, java)

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade, eu preciso que o usuario (client) leia de tempos em tempos um arquivo simples (txt) do server, para mostrar na tela a informação contida nesse arquivo, esse temporizador eu consegui fazer:

function NeverEnding(input) {
   document.getElementById('result2').innerHTML=counter2;
           if(counter2==5){
        counter3=counter3+counter2;
        mostracapa='<?'+cwbcapa2+cwbcapa3+'?>';
           document.getElementById('result3').innerHTML=counter3;
           document.getElementById('result4').innerHTML=mostracapa;
        counter2=0;
           }
   counter2 ++;
   if(counter2>5) {
      window.cleanrInterval(intervalId);
   }
}

function StartItNonEnding() {
   intervalId=window.setInterval(NeverEnding,1000,10);
}
Joguei essa função StartItNonEnding no onload, isso faz disparar o temporizador. O que eu fiz na verdade foi passar o "código" php em 2 cookies (cwbcapa2 e cwbcapa3), e consigo ler esse código todo, fopen, fgets, etc..., e a linha de comando está correta, isso eu já testei, o que eu preciso agora, é executar esse comando e atribuir o valor numa variavel js, do jeito que está lá ele ignora quando eu coloco as tags para php "<?", ele simplesmente deixa em branco, preciso que ele entenda que é para rodar o código, quando eu tiro essas tags, ele imprime todo o código php:
 $hand01=fopen('nextmusic/capa.php', 'r'); while(!feof($hand01)){$capafim = fgets($hand01,4096);} fclose($hand01); echo $capafim;

Esse comando, em teoria, faz ele ler o conteudo dessa página eu tenho que atribuir esse valor a variavel js chamada mostracapa.

Eu dei essa volta toda porque preciso que de tempos em tempos atualizar esses dados, mas não posso usar o refresh, e nem forçar o usuário a fazer qualquer movimento como clicar, mover o mouse, etc...

Se trata de uma rádio on-line, e os dados que irão aparecer são os dados da música que estiver tocando no momento, capa do disco, letra da música, nome do artista, etc..

Finalizando, consigo passar o código via cookie para a máquina do usuário, o que eu estou precisando agora é achar uma maneira de fazer o js executar esse comando php

ABS

Rogerio

Link para o comentário
Compartilhar em outros sites

  • 0

Não posso usar o ajax, até porque não deixamos o usuário acessar diretamente o XML aqui, o que nós fazemos é enviar um sinal streaming para o servidor externo e de lá sai para os diversos usuários, não temos banda pra segurar um grande número de usuários acessando diretamente, além disso não acho que o ajax faça esse tipo de temporizador, ele só serve se o usuário clicar ou escolher alguma coisa, e não é o caso, tem que rodar direto e automatico depois que ele abre a página, independente de qualquer outra ação do usuário.

O que eu preciso é uma das coisas abaixo:

mostracapa="<?"+cwbcapa2+cwbcapa3+"?>";
- o resultado disso fica vazio, então pensei no seguinte


mostracapa=cwbcapa2+cwbcapa3;
- o resultado disso fica o seguinte:
$hand01=fopen('nextmusic/capa.php', 'r'); 
while(!feof($hand01)){$capafim = fgets($hand01,4096);} 
fclose($hand01); 
echo $capafim;
- mas ele imprime essa linha ao invés de executar o comando, por falta do <? ... ?>


mostracapa="&lt;?"+cwbcapa2+cwbcapa3+"?&gt;";
- só que o browser não interpreta esse código

Só preciso mandar o js executar o comando php.

Pensei em procurar algum tipo de comando escape, para que o js execute isso, mas também não consegui.

Dá uma olhada no player atual:

http://www.cidadewebrock.com.br/v2/player_audio_new.php

No player existem vários campos:

- no ar (música que está rodando)

- próxima (dââ, nem preciso falar)

- album (o cd de origem da música)

- capa (a imagem da capa do cd) - só aparece se existir

- comprar (um botão de compra, logo acima dos controles de volume) - só aparece se existir

- letra (um botão de compra, logo acima dos controles de volume) - só aparece se existir

Hoje e estou usando iframes para atualizar de 10 em 10 segundos cada um desses campos, mas isso é muito falho, com o temporizador eu consiguiria ler o que está escrito em um determinado arquivo e mostrar na tela.

Pensei também em ler um arquivo usando somente código js, mas não sou experiente em criar esses tipos de código, por isso tentei usar esse código em php, se alguém tiver outras sugestões....

ABS

Rogerio

Link para o comentário
Compartilhar em outros sites

  • 0

rajneesh,

Quase isso, tenho um programa que roda no servidor e joga no BD o endereço das imagens

- ex.: http://www.cidadewebrock.com.br/v2/capas/3...eautifullie.jpg

Esse mesmo programa exporta um arquivo capa.txt com uma só linha, onde está escrito esse endereço, e isso ocorre sempre que a música do player muda.

Por isso gerei o temporizador, que deveria ler esse arquivo a cada 10 segundos, se for um endereço diferente (nova imagem) ele carrega a imagem correta, um delay de 10 segundos é aceitavel no meu caso.

Na pratica o que eu preciso é (ou deveria ser) bem simples:

- ler conteudo do arquivo capa.txt

- jogar o valor numa variavel

- escrever a variavel

Como o player fica aberto o tempo todo na maquina do usuário, não posso usar o PHP para fazer essa leitura, só funcionaria se eu fizesse um refresh, mas aí eu perco a conexão e o som para.......

Tentei colocar uma função em PHP para fazer isso, mas não consegui, existe alguma função em js que leia arquvos?? tipo um fread, ou fopen???

Tentei também jogar a função PHP dentro de uma variavel js, como mostrei, mas também não rodou

Já estou ficando deseperado!!!!!

ABS

Rogerio

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...