Jump to content


Photo

Problemas Com Fopen()


  • Faça o login para participar
6 replies to this topic

#1 Kyosuke-RJ

Kyosuke-RJ

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino
  • Localidade:Duque de Caxias

Posted 08/09/2011, 17:38

Galera, estou precisando de uma ajuda. Criei uma classe para salvar as instruções de sql executadas em um log, sendo que quando eu executo uma instrução ao invez dela adcionar isto ao log ele sobrescreve o que já tem lá.

A função está assim:

$handler = fopen($this->filename, "a");
fwrite($handler, $text);
fclose($handler);


#2 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 08/09/2011, 18:07

Olá,
O problema deve ser no "a". Experimenta trocar por "w".
http://br.php.net/ma...ction.fopen.php

#3 Kyosuke-RJ

Kyosuke-RJ

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino
  • Localidade:Duque de Caxias

Posted 08/09/2011, 18:23

ja troquei por todos atributos possivei alí e não resolve. O certo alí seria o 'a' mesmo mas num sei porque não está funcionando...

#4 williamkevenis

williamkevenis

    Normal

  • Banidos
  • PipPip
  • 99 posts
  • Sexo:Masculino
  • Localidade:Maceio
  • Interesses:PHP, CSS, JS

Posted 08/09/2011, 19:08

na verdade qual o erro gerado no php?
Att, William Kévenis. A simplicidade é o último degrau da sabedoria.
Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#5 Kyosuke-RJ

Kyosuke-RJ

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino
  • Localidade:Duque de Caxias

Posted 08/09/2011, 19:20

não gera erro, ele simplesmente apaga o que já está escrito no arquivo e não quero que isso aconteça. Tentei fazer isso:

 
$handler = fopen($this->filename, "a+");
if (feof($handler) == true) {
fwrite($handler, $text);
fclose($handler);
}
else{
fwrite($handler, "ERRO!\n");
fclose($handler);
}


Ai ele imprime ERRO! =x

P.S.: Sou iniciante em php... ;)

#6 williamkevenis

williamkevenis

    Normal

  • Banidos
  • PipPip
  • 99 posts
  • Sexo:Masculino
  • Localidade:Maceio
  • Interesses:PHP, CSS, JS

Posted 08/09/2011, 19:22

<?php

// Abre ou cria o arquivo bloco1.txt

// "a" representa que o arquivo é aberto para ser escrito

$fp = fopen("bloco1.txt", "a");



// Escreve "exemplo de escrita" no bloco1.txt

$escreve = fwrite($fp, "exemplo de escrita");



// Fecha o arquivo

fclose($abre);

?>

Att, William Kévenis. A simplicidade é o último degrau da sabedoria.
Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#7 Kyosuke-RJ

Kyosuke-RJ

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino
  • Localidade:Duque de Caxias

Posted 08/09/2011, 19:27

então, a classe é essa:


<?php


class LoggerHTML extends Logger {
public function write($message) {
$time = date("d-m-Y H:i:s");
$text = "<br />\n";
$text.= "<p>\n";
$text.= " <b>$time</b>: \n";
$text.= " <i>$message</i> <br />\n";
$text.= "</p>\n";

$handler = fopen($this->filename, "a");
fwrite($handler, $text);
fclose($handler);

}
}

?>


a parte do fopen está do mesmo geito que tu pôs ai, e mesmo assim se entrar um resgistro novo ele apaga o que tinha antes.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq