Ir para conteúdo

POWERED BY:

Arquivado

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

Jair Humberto

[RESOLVIDO] PHP tem SetInterval?

Recommended Posts

creio que sua resposta não ajuda muito né Igor, pois pra que existiria o forum se já tem o manual?se tivesse uma função lá com o mesmo nome seria facil,mas para procurar lá eu teria que ler o manual inteiro =.=Inom, a função sleep não é equivalente à setInterval.a setInterval ou setTimeOut faz o seguinte:por exemplo: setTimeOut(qualquer, 3000) executa a função qualquer e a cada 3 segundos torna a executa-la.o sleep do php faz o seguinte: exemplo sleep(3), o programa dorme por 3 segundos, e enquanto isso não aparece nada na tela. e isso não serve. ele tem que executar uma instrução e depois de X segundos tornar a executa-la.alguém saberia dizer se existe uma função no php que faz isso?Obrigado desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

jair humberto.

 

a funcao sleep() do php eh equivalente ao setInterval do javascript

 

"equivalente" eh diferente de "igual"

 

conexões persistentes a bancos de dados, muito utilizados em sistemas de webchat, utilizam sleep() dentro de um loop infinito.

 

a sua duvida jah foi muito discutida na epoca que o pessoal desenvolvia webchats.

 

aqui no forum, procure nos topicos antigos de 5 anos atras pra frente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe insistir, mas não é equivalente,se você utilizar o sleep dentro de um loop infinito, o script também vai ficar num loop infinito. nunca vai aparecer nada na tela.set time out tem o comportamento de executar a função primeiramente , ou seja exibe o que eu quero na tela, depois a cada x segundos torna a executa-la.sleep não faz issoequivalente é aquilo que é de igual valor aquilo que equivale segundo o dicionario,ou seja sleep não é equivalente a set interval ou set time out.mas eu tava raciocinando aqui, não sei se php faz isso, principalmente porque é server-side, acho que o melhor e tentar bolar algo com javascript mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se usar "sleep() dentro de um loop infinito + tecnicas Ajax" poderá obter algo "equivalente" , algo "semelhante" ao setTimeOut

se você utilizar o sleep dentro de um loop infinito, o script também vai ficar num loop infinito. nunca vai aparecer nada na tela

procure saber sobre conexões persistentesé possível manter o php rodando em loop infinito e ao mesmo tempo enviando dados ao browser do usuario.exemplo lógico

set_time_limit(0);$c = 0;while( 1=1 ){echo $c++;sleep(3);flush();}

* esse script aí nao funcionará adequedamente. Depende de outras configurações em tempo de execução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No ASP, existe isso:Function js(str)Response.Write "<script>" & str & "</script>"End Function<% js "setTimeout('window.close();', 1500);" %>Se alguem conseguir traduzir para php... ajudaria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No ASP, existe isso:

 

Function js(str)

Response.Write "<script>" & str & "</script>"

End Function

 

 

<% js "setTimeout('window.close();', 1500);" %>

 

Se alguem conseguir traduzir para php... ajudaria.

Não deixa de ser Javascript. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

usar sleep() junto com Ajax =.= ou seja javascript,aí é melhor nem usar o sleep(), e usar só o setTimeOut do javascript.mas tava na cara, Php não faz isso, até no ASP é o javascript, entãoé isso não existe função como essa em php, eu cansei de procurar, e tambémnão faz sentido haver isso, sendo que php é server-side, e não tem funções javascriptcomo o ASP tem, logo, a solução é mesmo o Ajax.Obrigado galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

jair, vou procurar um remedio para a memoria, at pq nao me recordo de tudo, pois tenho uma profissao para cada ano de vida, e tb forum eh pra tirar duvida, manual pra aprender, sou prof e sei direfenciar esses fatos...sera q você consegue...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o comentario do Vinicius complicou ainda mais..

 

o ASP nao tem funcao setTimeout !!

preste atencao!

 

isso aqui eh o asp escrevendo setTimout do javascript

Function js(str)

Response.Write "<script>" & str & "</script>"

End Function

 

 

<% js "setTimeout('window.close();', 1500);" %>

 

seria o mesmo que eu disser que o php tem

 

<?php

 

echo "<script>";

echo "function teste(){alert(1);}";

echo "</script>";

 

echo "setTimeout(teste, 1500);";

 

?>

 

usar sleep() junto com Ajax =.= ou seja javascript,

 

aí é melhor nem usar o sleep(), e usar só o setTimeOut do javascript.

Jair, isso nao tem coerencia.

 

 

tema do topico

Existe alguma função como SetInterval ou setTimeOut do Javascript em PHP?

resposta:

set_time_limit(0);

 

$c = 0;

while( 1=1 ){

 

echo $c++;

 

sleep(3);

flush();

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja bem MODERADOR, o título do post. Vou repetir: PHP tem SetInterval?Eu só mostrei o que uso no asp, e que claramente pode ser passado pra php, como você o fez.Pode ser que ele precise colocar esse SetInterval no meio de um código php, e a solução seria esta que você reformulou a que eu passei no ASP, apenas colocando o SetInterval no lugar do SetTimeout. A gente nao sabe qual a necessidade do amigo que perguntou se PHP tem SetInerval.Tem ngm complicado aqui não meu caro...Me desculpe se atrapalhei sua moderação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja bem MODERADOR, o título do post. Vou repetir: PHP tem SetInterval?Eu só mostrei o que uso no asp, e que claramente pode ser passado pra php, como você o fez.Pode ser que ele precise colocar esse SetInterval no meio de um código php, e a solução seria esta que você reformulou a que eu passei no ASP, apenas colocando o SetInterval no lugar do SetTimeout. A gente nao sabe qual a necessidade do amigo que perguntou se PHP tem SetInerval.Tem ngm complicado aqui não meu caro...Me desculpe se atrapalhei sua moderação.

Cara acho que sua resposta seria não!não tem essa função em php.php assim como asp não tem lup...ele gera o html e para, gera de novo e para, gera de novo e para.. nada mais que isso...para isso é ajax, e js, que num deixa de ser java.Se existe em js, sem necessidade ficar buscando isso em php, a não ser que sua pergunta seja só por dúvida.Qualquer outra dúvida posta ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Igor desculpe meu caro, so nunca gostei do tipo de resposta que você deu, porque eu nao faço isso, sempre busco tirar dúvidas dos outros quando posso e não digo "Vá procurar em tal lugar".

 

e você disse que existe tal funcao, no entanto não existe,

mas sim, uma adaptação.

 

se forum é pra tirar dúvidas,

minha dúvida é: existe setInterval em php? é logico que eu já pesquisei isso em N cantos.

 

se no exemplo do vinicius apenas imprime javascript, aí não resolve :/

 

mas

set_time_limit(0);$c = 0;while(1){echo $c++;sleep(3);flush();}

realmente funcionou, a página não ficou dormindo infinitamente como eu esperava..

Obrigado novamente Hinon,

 

de qualquer forma creio que melhor resultado seria com ajax como o aledz7 falou, porque a página não poderia ficar sendo carregada toda vida assim como fica com sleep;

 

busquei aprender ajax, porque eu não sabia como utilizar, por isso tava querendo fugir disso.http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

 

então surgiram algumas dúvidas, mas isso eu posto em javascript.

 

Obrigado novamente a todos :unsure: .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vinicius a duvida do Jair estava bem clara e você deu uma resposta que nao tem nada ver. Inclusive o frenesi comentou que sua resposta nao tem nada ver. Apenas reforcei o que o frenesi comentou. E pra dizer a verdade sabia que ia dar "zica".Há muitos topicos onde eu me equivoco tb postando uma solução sendo que o autor do topico nao esclareceu o assunto para devida interpretação.Não sou moderador dessa area, venho aqui apenas pra dar uma mão pro pessoal pois é a área mais movimentada do forum e necessita de colaboradoes.O fato de ser moderador, nao implica em ser melhor que um ou outro. Sou um usuario comum como qualquer outro no forum. Tenho cargo de moderador porque sou voluntário no forum há mais de 7 anos e gosto de ajudar a zelar pelo espaço.por mimassunto encerrado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não questionei o fato de ser moderador.... mesmo porq odeio trocar farpas com vcs que de certo modo podem "mandar" aqui nesse lugar. Se o cara q tinha a dúvida ta satisfeito, CHEGA!Já que pra você está encerrado, pra mim tb.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eita galera.. nao briguem... :P

Não questionei o fato de ser moderador.... mesmo porq odeio trocar farpas com vcs que de certo modo podem "mandar" aqui nesse lugar. Se o cara q tinha a dúvida ta satisfeito, CHEGA!Já que pra você está encerrado, pra mim tb.

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.