Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá pessoal!
é o seguinte, hipotéticamente eu tenho uma página php, que atualiza algumas informações no banco de dados. e eu quero que o script rode no servidor sem parar, atualizando de 24hrs em 24hrs o banco de dados.
e se possível o script rode sozinho, ou seja, sem um usuário fazendo requisições. ou pelo menos somente o servidor.
existe alguma função, script ou maneira de fazer isso?
agradeço desde já a todos
Existe essa posibilidade sim brother pode ser agendada uma tarefa no cron.
parece bem funcional, mas e no caso de eu usar uma hospedagem windows (bem menos comun), teria algum substituto tipo,
um script prompt de comando, executável etc(..)?
criei um código aqui que funciona localmente, no windows
atualizar.cmd
@echo off
:atualizar
start "C:\Program Files\Internet Explorer\iexplore.exe" "http://localhost/reflesh.php"
echo Atualizado em %DATE%!
timeout 86400
GOTO atualizar
pause
ele abre o navegador e atualiza os dados ok, mas não teria como ele executar sem precisar abrir o navegador?
será que vai funcionar no linux também?
Você pode rodar qualquer script php via linha de comando, tanto em Windows como em Linux.
Aqui você poderá ver:
ajuda muito, mas eu não quero rodar literalmente o php no console, eu quero que o console execute o arquivo.php.
teria como, ou não?
http://www.php.net/manual/en/features.commandline.usage.php
Sem problema algum, você pode chamar algum arquivo através de funções da linha de comando. Esse exemplo é de um arquivo batch para rodar algum aqruivo
@echo OFF
"C:\php\php.exe" script.php %*
Exemplo retirado do link http://www.php.net/manual/en/features.commandline.usage.php
ou escrever um código em PHP que inclua o arquivo:
D:\dev\php>php
<?php
require_once('script.php');
?>
Basta você escolher o que deseja
Utilizando o agendador de tarefas do windows, você pode executar o arquivo batch para rodar o seu script.
Fique atento e preste atenção no projeto, pois a depender do servidor em que irá hospedar a aplicação, isso não será possível, se não pelo CRON.
Obrigado Gabriel,
funcionou, porém apareceram alguns erros:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img845.imageshack.us/img845/7128/errorob.jpg&key=f07bdb2c0d6a01f55ac8592824b07e17e10e486be33f9f51d7c4e3941e5e6442" alt="errorob.jpg" />
pelo que eu entendi, foi incapaz de carregar as dlls, como resolver?
no meu script está assim agora:
@echo off
:atualizar
"E:\php\php546x130402105848\php-win.exe" cria.php %*
echo Atualizado em %DATE%!
timeout 60
GOTO atualizar
exit
tentei com "E:\php\php546x130402105848\php.exe", porém deu os mesmos erros
o segundo, não funcionou, não deu erro, mas também não executou o script
Existe essa posibilidade sim brother pode ser agendada uma tarefa no cron.