Ir para conteúdo

POWERED BY:

Arquivado

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

Renan T. Fernandes

Deletar fotos apos 24h de crição

Recommended Posts

vlw Beraldo, quase que eu consigo com isso, estou usando esse script

 

PHP
<?php

foreach (glob("imagens/outdoor1/*") as $path) { //configure path

    $docs[filectime($path)] = $path;

} ksort($docs); // sort by key (timestamp)

 

$data_atual = date("dMY");

foreach ($docs as $timestamp => $path) {

$data = date("dMY", $timestamp);

if ($data == $data_atual) {

for($i = 0; $i < 100 ; $i++) {

unlink($path);

}

}

}

?>

 

peguei um dos comments do kras ai no link e aprimorei xDD

 

esse script da um erro

ex

 

Warning: unlink(imagens/outdoor1/32a101c5a1b91ad01ddb52a83e8a22ae.jpg) [function.unlink]: No such file or directory in D:\Arquivos de Programas\EasyPHP 2.0b1\www\verifica.php on line 11

 

cerca de umas 70 veses por kda arquivo q tem na pasta, e ele deleta cerca de 7 a 5 arquivos por refresh q eu do na pagina

 

como q eu coloco pra ele deletar todos?

 

nunca fui bom com for

 

e eh a primeira vez q eu mexo num foreach

 

xDD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que aquele for dentro do foreach?

 

A verificação pode ser feita com time(), nem precisa usar date().

time() trabalha com segundos, logo a verificação das 24 horas deve ser feita em segundos

 

se (data_arquivo <= time() - 60*60*24)

excluir

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP
<?php

foreach (glob("imagens/negativo1/*") as $path) { //configure path

    $docs[filectime($path)] = $path;

} ksort($docs); // sort by key (timestamp)

 

 

foreach ($docs as $timestamp => $path) {

$data = (time());

$datam = (time() - 60*60*24);

if($data != $datam) { //troquei o < por ! pra ele ter q deletar msm, pro teste

unlink($path);

}

}

?>

 

descomplico bastante mas ele nao deleta todos os arquivos, ta deletando uma media de 13 a 3 agora, fico mais variado >.<

Compartilhar este post


Link para o post
Compartilhar em outros sites

E usar tabela temporario, não da?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

PHP
foreach ($docs as $timestamp => $path)

{

    $datam = (time() - 60*60*24);

 

     if($timestamp <= $datam)

    {

        unlink($path);

    }

}

 

Eu também nunca usei tabela temporária; apenas sabia que existia... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, mas tabela temporaria tb não vai funciona, defequei ^^

 

tabela temporaria, se trabalha normalmente, mas quando a conexao fecha, ela é removida, entaum não vai dar certo.

 

talvez colocando um campo de timestamp, e um timeout de 86400s (24horas), e colocando no cabeçalho da pagina, um arquivo que apague todos os campos com time out atual-86400, de certo. Resumindo, se ainda não tiver a solução, posta ai que te dou uma mão =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo q eu fiz, dei um include pro arquivo com os scripts ai acima =]

mesmo q so delete de 3 a 13 arquivos por vez q for visualizar, sempre q a index for vista ele vai deletando, acho q isso deve resolver =]]

principalmente pq meu site todo roda encima da index xDD

 

ah, existe algum problema de usar includes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, acho que eu faria isso mesmo =) se voce não tiver controle do sistema.

 

se você tiver o controle, pode fazer um scriptzinho que remova registro do banco, e a cada nova inclusão, você agenda uma tarefa para esse scriptzinnho, passando o ID da foto que será apagada. Mas isso se você tiver controle do host =)

 

mas esse sua solução ai é boa

Compartilhar este post


Link para o post
Compartilhar em outros sites

minha solucao eh simples e eficas xDD

 

tava tendo uns problemas com form mas ja resolvi =]

a proposito, se eu criar o form1,

dentro do form1 eu crio o form2,

quando eu do um submit pelo form2 ele pega o action do form1,

isso eh certo? O.o

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que não é certo é criar um form dentro do outro >.<

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.