Jump to content


Photo

Trio Parada Dura (fwrite, Fopen, Fclose)


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

#1 pisikpatha

pisikpatha

    Novato no fórum

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

Posted 06/12/2005, 13:47

Blz pessoal?
Seguinte...
To com uma duvida monstra aki, ja usei a pesquisa mas com esse novo modelo de busca eu ainda to meio perdido.
Eu preciso eh saber como q faz para excluir um trecho do arquivo texto ao invés de adicionar com fwrite.

Vou explicar melhor....
tenho um XML com o seguinte corpo:
<houses> 
<house name="Bamboo"> <tiles fromx="164" fromy="182" fromz="7" tox="120" toy="110" toz="7"/> </house>
<house name="Palmera"> <tiles fromx="158" fromy="120" fromz="6" tox="180" toy="200" toz="6"/> </house>
</houses>

daí eu fiz um formulario de criação pra XML
esse eh o responsavel por gerar o XML
<?php
function newhouse()
{
	
	$fromx = $_POST['fromx'];
	$fromy = $_POST['fromy'];
	$fromz = $_POST['fromz'];
	$tox = $_POST['tox'];
	$toy = $_POST['toy'];
	$toz = $_POST['toz'];
	$portax = $_POST['portax'];
	$portay = $_POST['portay'];
	$portaz = $_POST['portaz'];
	$andar = $_POST['andar'];
	$nome = $_POST['nome'];
	$house_name = "$nome.xml";
	$houses = "gravar.xml";

// houses.xml
$file = fopen("$houses", "a+");
fwrite($file, '<house name="' .$nome. '"> <tiles fromx="'. $fromx .'" fromy="'. $fromy .'" fromz="'. $fromz .'" tox="'. $tox .'" toy="'. $toy .'" toz="'. $toz .'"/> </house> </houses> ');
 fclose($file);	
}
newhouse();
echo 'House criada com sucesso';
?>

até ai beleza, ele incluir todos os registros dentro do XML... soh tem um porem,
ele inclui após a TAG de fechamento do XML, eu preciso saber como q faz pra toda vez q ele for gravar no xml ele elimine a ultima tag antes de começar o processo.

olha como ele ta gerando o XML
<houses> 
<house name="Bamboo"> <tiles fromx="164" fromy="182" fromz="7" tox="120" toy="110" toz="7"/> </house>
<house name="Palmera"> <tiles fromx="158" fromy="120" fromz="6" tox="180" toy="200" toz="6"/> </house>
</houses>
<house name="Palmera"> <tiles fromx="158" fromy="120" fromz="6" tox="180" toy="200" toz="6"/> </house>
</houses>
<house name="Palmera"> <tiles fromx="158" fromy="120" fromz="6" tox="180" toy="200" toz="6"/> </house>
</houses>

por ele naum estar deletando a tag </houses> a mesma esta repetindo varias vezes.

pra resumir, eu preciso saber qual comando usa pra deletar um trecho da string dentro do XML...

obrigado a todos,
CYA...

Edit
esqueci o codigo do formulario propiamente dito:
<html>
<body>
<form method="post" action="newhouse.php">
<div style="text-align: center">	</div>
<table cellspacing="0" width="100%">

 <tr>
  <td width="20%">Da Posi&ccedil;&atilde;o X: </td>
  <td><input type="text" name="fromx" maxlength="20" /></td>
 </tr>

 <tr>
  <td width="20%">Da Posi&ccedil;&atilde;o Y:</td>
  <td><input type="text" name="fromy" maxlength="10"></td>
 <tr>
   <td>No Andar Z: </td>
   <td><input type="text" name="fromz" maxlength="10"></td>
 </tr>
 <tr>
  <td width="20%">At&eacute; a Posi&ccedil;&atilde;o X:</td>
  <td><input type="text" name="tox" maxlength="10"></td>
 </tr>

 <tr>
  <td width="20%">At&eacute; a Posi&ccedil;&atilde;o Y:</td>
  <td><input type="text" name="toy" maxlength="10"></td>
 </tr>
 <tr>
   <td>At&eacute; o  Andar Z: </td>
   <td><input type="text" name="toz" maxlength="10"></td>
 </tr>
 <tr>
   <td>Porta Pocis&ccedil;&atilde;o X: </td>
   <td><input type="text" name="portax" maxlength="10"></td>
 </tr>
 <tr>
   <td>Porta Pocis&ccedil;&atilde;o Y: </td>
   <td><input type="text" name="portay" maxlength="10"></td>
 </tr>
 <tr>
   <td>Porta Pocis&ccedil;&atilde;o Z: </td>
   <td><input type="text" name="portaz" maxlength="10"></td>
 </tr>
 <tr>
   <td>Nome da Casa </td>
   <td><input type="text" name="nome" maxlength="10"></td>
 </tr>
 <tr>
   <td><input name="submit" type="submit" value="Create">
&nbsp;
<input name="reset" type="reset" value="Reset"></td>
   <td>&nbsp;</td>
 </tr>
</table>
</form>
</div>
</body>
</html>

Edição feita por: pisikpatha, 06/12/2005, 13:49.


#2 fly2k

fly2k

    Super Veterano

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

Posted 06/12/2005, 14:11

Pra edição de arquivos não tem milagre. Você tem que ler o arquivo, modificar o que quiaser numa strong, e depois gravar tudo de novo no arquivo.
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#3 pisikpatha

pisikpatha

    Novato no fórum

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

Posted 06/12/2005, 14:31

desculpe a minha ignorancia, mais vc poderia ser mais especifico???

tipo... eu intendi o q vc falou, na logica ficaria assim, abro o arquivo, excluo o q tem pra excluir, fecho o arquivo... depois... abro de novo, faço a inclusão e fecho de novo. issu?

c for beleza, mas como q eu faço pra excluir a ulttima tag do arquivo, eh o str_replace q usa??? por favor me ajude com a sintaxe... obrigado

#4 pisikpatha

pisikpatha

    Novato no fórum

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

Posted 07/12/2005, 13:43

tem q usar o comando explode??? ou soh o str_replace ??

#5 LucasMS

LucasMS

    Super Veterano

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

Posted 07/12/2005, 14:05

a logia é:

ler o arquivo e gravar o conteudo numa variavel
editar a variavel (ai vc usa todas as funcoes de string disponiveis: php.net/string)

gravar em cima do arquivo a variavel editada




1 user(s) are reading this topic

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

IPB Skin By Virteq