Jump to content


Photo

Função "fopen()"


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

#1 screenshotx

screenshotx

    12 Horas

  • Usuários
  • 153 posts
  • Sexo:Não informado

Posted 17/10/2007, 09:08

Bom dia pessoal do fórum..

Seguinte, estou usando as funções 'fopen()' e 'fwrite()' para gerar um arquivo texto.

Em partes está dando certo. Com o arquivo texto já criado, e em branco, eu rodo a função, ela abre o arquivo, e escreve.

Até ai beleza, ela escreveu certinho os dados no arquivo.

Mas depois, se eu rodo uma segunda vez, ele escreve os dados também, porém, escreve na linha de baixo dos dados antigos.

Entenderam? A cada vez que eu rodo, ele inclui novas linhas pra baixo, mas o que eu quero, é que ele limpe os dados anteriores, e substitua pelos novos. Tem como?

Agradeço desde já! Valeu!
Iniciante em PHP/MySQL.

"Ter problemas na vida é inevitável, mas ser derrotado por eles é opcional."

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 17/10/2007, 09:14

Use w+ no segundo parâmetro da função fopen().

Veja a tabela no manual desta função.

Flws...Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 screenshotx

screenshotx

    12 Horas

  • Usuários
  • 153 posts
  • Sexo:Não informado

Posted 17/10/2007, 09:18

Então, ja tentei usando o w+

Mas não deu certo...

Esses dados que eu estou escrevendo, são vários registros de uma tabela. Quando eu coloco o w+ ele escreve no arquivo somente o primeiro registro da tabela, somente uma linha, porque isso?

Vlw!
Iniciante em PHP/MySQL.

"Ter problemas na vida é inevitável, mas ser derrotado por eles é opcional."

#4 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 17/10/2007, 09:18

Cadê o código? Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 screenshotx

screenshotx

    12 Horas

  • Usuários
  • 153 posts
  • Sexo:Não informado

Posted 17/10/2007, 09:20

Taí:

$filename = 'relat_os.txt';
$somecontent = "$cod_coord_txt;$dt_solic_txt;$dt_prev_txt;$row[horas_orcadas];\n";
  

	 if (is_writable($filename)) {

		
		 if (!$handle = fopen($filename, 'w+')) {
			  print "Erro abrindo arquivo ($filename)";
			  exit;
		 }

		 // Escrevendo $somecontent para o arquivo aberto.
		 if (!fwrite($handle, $somecontent)) {
			 print "Erro escrevendo no arquivo ($filename)";
			 exit;
		 }

		 print "Sucesso: escrito ($somecontent) no arquivo ($filename)";

		 fclose($handle);

	 } else {
		 print "The file $filename is not writable";
	 }

UPDATE: Obs: Isso está dentro de um WHILE!

Edição feita por: screenshotx, 17/10/2007, 09:24.

Iniciante em PHP/MySQL.

"Ter problemas na vida é inevitável, mas ser derrotado por eles é opcional."

#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 17/10/2007, 09:29

Ok, se está dentro de um while e toda vez você abre o arquivo, trunca e escreve o dado corrente da tabela, naturalmente só escreve uma vez. ;)

Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 screenshotx

screenshotx

    12 Horas

  • Usuários
  • 153 posts
  • Sexo:Não informado

Posted 17/10/2007, 09:42

É... realmente.. bobiei rs..

Deu certo, tirei o fopen() do while..

Muito obrigado!
Iniciante em PHP/MySQL.

"Ter problemas na vida é inevitável, mas ser derrotado por eles é opcional."




1 user(s) are reading this topic

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

IPB Skin By Virteq