[OFF] executar outro arquivo php

19 views
Skip to first unread message

Diego Campos

unread,
Aug 19, 2010, 8:47:48 PM8/19/10
to php-brasil
pessoal, preciso enviar um comando dentro de um php para executar
outro.

não posso utilizar include porque o outro php em quetão usa a função
sleep, exatamente por isso preciso que sera executado separadamente

dentro de uma rotina, terei de executar esse outro php diversas vezes

alguém pode me dar uma luz?

se alguém souber uma função que acesse a linha de comando posso usar
algo do tipo:

função(php -f /home/user/arquivo.php);

Dawson Brito

unread,
Aug 19, 2010, 8:50:04 PM8/19/10
to php-b...@googlegroups.com
Se for num servidor linux pode usar exec ou system.

2010/8/19 Diego Campos <diegodi...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.




--
Browse in the Fast Lane, get Firefox[http://www.mozilla.com/pt-BR/products/download.html]

Diego Campos

unread,
Aug 19, 2010, 8:52:21 PM8/19/10
to php-b...@googlegroups.com
Dawson, posso fazer assim?

exec('php -f /home/user/arquivo.php?var=valor');

Diego Campos

unread,
Aug 19, 2010, 9:14:08 PM8/19/10
to php-b...@googlegroups.com
complicou, já reparei q a função exec está bloqueada no meu servidor, alguém tem alguma outra idéia?

Bruno Reis

unread,
Aug 19, 2010, 9:17:43 PM8/19/10
to php-b...@googlegroups.com
Quem sabe se você explicar melhor todo o cenário....

Em 19 de agosto de 2010 22:14, Diego Campos
<diegodi...@gmail.com> escreveu:

Diego Campos

unread,
Aug 19, 2010, 9:20:23 PM8/19/10
to php-b...@googlegroups.com
tenho um FOR que deve seguir mas a cada consulta ele deve inserir uma linha no MySQL porém com atraso de alguns segundos então criei outro .php q usa sleep para atrasar
porém se eu der um include() no arquivo que tem o atraso ele vai atrasar todo o FOR e preciso que o FOR siga normalmente

deu p entender?

Bruno Reis

unread,
Aug 19, 2010, 9:25:46 PM8/19/10
to php-b...@googlegroups.com
é algo assim:

insira uma linha no mysql agora...

outra daqui a 10 segundos....

outra daqui a 20 segundos...


???

se sim, pra que isso? quem sabe tem um jeito mais simples de fazer o
que você quer?

Isso precisa ser iniciado pelo usuário?

Uma alternativa é programar um cron.

Em 19 de agosto de 2010 22:20, Diego Campos
<diegodi...@gmail.com> escreveu:

Diego Campos

unread,
Aug 19, 2010, 9:32:17 PM8/19/10
to php-b...@googlegroups.com
mas não acho uma função que mande abrir outro php sem ser include, já que exec está desabilitada em meu servidor.

Em 19 de agosto de 2010 22:31, Diego Campos <diegodi...@gmail.com> escreveu:
é uma tarefa cron

dentro de um laço

FOR {
insere uma linha em $l[segundos]
insere outra em $l[segundos2]
}

ae usei assim:
FOR {
sleep($l[segundos]);
insere linha 1
sleep($l[segundos2]);
insere linha 2
}

qual o problema?
ele está aguardando o primeiro sleep para iniciar o segundo, preciso que o segundo seja executa independente do primeiro, entende?

por isto pensei e chamar uma outra .php para fazer a inclusões, algo do tipo:
FOR {
insere.php?linha=1&sleep=10
insere.php?linha=2&sleep=25
insere.php?linha=3&sleep=12
}

ae o insere.php
sleep($_GET[sleep]);
insert .....$_GET[linha]

esse é o problema...

Diego Campos

unread,
Aug 19, 2010, 9:31:41 PM8/19/10
to php-b...@googlegroups.com
é uma tarefa cron

dentro de um laço

FOR {
insere uma linha em $l[segundos]
insere outra em $l[segundos2]
}

ae usei assim:
FOR {
sleep($l[segundos]);
insere linha 1
sleep($l[segundos2]);
insere linha 2
}

qual o problema?
ele está aguardando o primeiro sleep para iniciar o segundo, preciso que o segundo seja executa independente do primeiro, entende?

por isto pensei e chamar uma outra .php para fazer a inclusões, algo do tipo:
FOR {
insere.php?linha=1&sleep=10
insere.php?linha=2&sleep=25
insere.php?linha=3&sleep=12
}

ae o insere.php
sleep($_GET[sleep]);
insert .....$_GET[linha]

esse é o problema...

Em 19 de agosto de 2010 22:25, Bruno Reis <bruno....@gmail.com> escreveu:

Diego Campos

unread,
Aug 19, 2010, 9:35:42 PM8/19/10
to php-b...@googlegroups.com
resumindo, preciso de uma função que simplesmente mande executar um arquivo.php?var-value sem esperar resposta alguma, simplesmente mande o servidor executá-la, esta é a minha dificuldade.

Diego Campos

unread,
Aug 19, 2010, 9:40:53 PM8/19/10
to php-b...@googlegroups.com
meu problema seria resolvido também se eu pudesse enviar uma QUERY para o mysql mandando ele inserir uma linha após x segundos, isso é possível?

Elton Schivei Costa

unread,
Aug 19, 2010, 10:18:22 PM8/19/10
to php-b...@googlegroups.com
Pra que facilitar né?

Seguinte, inclua um arquivo com os comandos, detro do teu for, tu manda executar uma função que está no arquivo do include.


Atenciosamente.

Elton Schivei Costa
Analista de Sistemas.

Dawson Brito

unread,
Aug 19, 2010, 10:20:58 PM8/19/10
to php-b...@googlegroups.com
acho que algo assim daria certo.

for() {
$inserir[$segundos] = $dados;
}

ksort($inserir);
$t = 0;
foreach($inserir as $k=>$i) {
 inserir($i);
 $t = $k - $t;
 sleep($t);
}

<diegodi...@gmail.com>

Edinei L. Cipriani

unread,
Aug 19, 2010, 10:47:15 PM8/19/10
to php-b...@googlegroups.com
Que tal usar ajax? Com ajax vc pode enviar requisições em faixas de tempo, lembrando que o ajax não espera uma resposta do servidor para fazer uma nova chamada.

Você também pode usar o Gearman, que faz processamento distribuíodo em filas.
Veja mais em: http://gearman.org/

Espero ter ajudado!
T+

Também você pode usar o
Em 19/08/10 23:20, Dawson Brito escreveu:
Reply all
Reply to author
Forward
0 new messages