Jump to content


Photo

[duvida] Sistema Arquivo Texto


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

#1 Dantes

Dantes

    Turista

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

Posted 31/01/2007, 12:37

Eu ainda dando uma procurada e achei como gravar e como procurar uma linha e tals...mais minha duvida é que eu tenho um arquivo texto assim:
nome="joao" senha="joao123"

e eu nao estou conseguindo fazer com que eu troque apenas o "joao" e "joao123"
alguem pode me dar uma luz?

vlw

#2 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 31/01/2007, 14:44

Como assim troque? ou vc quer pegar os valores??
Se for para trocar por vazio use str_replace:
http://www.php.net/m...str-replace.php

$linha = str_replace(array("nome=", "senha="), "", $valor_linha);

#3 MarviN*

MarviN*

    nw . newton web

  • Usuários
  • 780 posts
  • Sexo:Não informado
  • Localidade:Brasília - DF

Posted 31/01/2007, 15:00

Por que você não cria um arquivo nos padrões da extensão .INI.
Aí vc pode usar a função parse_ini_file() para ler o conteúdo para um array...

Não sei de uma função que pegue esse array deposi e transforme no arquivo para gravar, mas vc pode construir isso!! :P.

Só um detalhe, não tem como substituir.. faça como o cara aí falou, leia o arquivo, substitua com str_replace ou expressões regulares (ereg) e depois grave no arquivo novamente.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
[ Blog Desenvolvimento Web: http://www.newtonwagner.net/blog ]
[ Diário da Selva: http://www.diariodaselva.com/ ]

[ "Não existe um caminho para a paz; a paz é o caminho." Mahatma Gandhi ]

#4 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 31/01/2007, 15:03

Mas só uma OBS, se seu servidor estiver em "safe_mode" ou for um servidor chato (a maioria e principalemnte os mais conhecidos) provavelmente a função "parse_ini_file()", não estará habilitada...

Digo por experiencia própria... fique atento a isso ... (y)

#5 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 31/01/2007, 15:45

Por que você não cria um arquivo nos padrões da extensão .INI.
Aí vc pode usar a função parse_ini_file() para ler o conteúdo para um array...

Não sei de uma função que pegue esse array deposi e transforme no arquivo para gravar, mas vc pode construir isso!! :P.

Só um detalhe, não tem como substituir.. faça como o cara aí falou, leia o arquivo, substitua com str_replace ou expressões regulares (ereg) e depois grave no arquivo novamente.


A função file().

#6 Dantes

Dantes

    Turista

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

Posted 03/02/2007, 22:15

ta...mais tipo e se for arquivo xml? eh a mesma coisa porque estou tentando aqui de varias maneiras e nao estou conseguindo..vou tentar explicar melhor..
tenho um arquivo xml +/- assim:
<cliente nome="joao" senha="joao123">
<telefones>
<telefone casa="555-5555">
</telefones>
</clientes>

e eu estava era precisando trocar senha e telefone...tentei de varias maneiras e dei uma loonga procurada no site php.net mais ta dificil...alguem pode me ajudar com esse problema?

#7 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 03/02/2007, 22:37

Bem por que vc não disse que era XML desde o começo ... (n)
Mas assim se vc estiver rodando no PHP 5 tem uma função que vc pode usar que é babinha pegar os valores do XML e depois tratar do jeito que quiser é essa:
http://br.php.net/ma...l-load-file.php

Mas assim se for em um PHP antes que o 5 vc vai ter que fazer ou pegar uma classe ou funçõe expecifica de XML e juntas forma um conjunto ... para saber quais as funções leia ai:
http://br.php.net/ma..._BR/ref.xml.php
http://br.php.net/ma...f.simplexml.php

Dentre outras ...

Edição feita por: sk15, 03/02/2007, 22:40.


#8 Dantes

Dantes

    Turista

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

Posted 03/02/2007, 23:12

ateh tentei fazer aqui mais achu q ainda naum peguei a logica disso nao...
tipo tentei com um codigo assim:

$arquivo = simplexml_load_file('teste.xml');
$trocar = str_replace(array('<telefones>', '</telefones>'), '<telefone casa="555-5551">', $arquivo->asXML());

mas naum aparece nada..
estou fazendo algo de errado?

PS: eh php5 sim

#9 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 04/02/2007, 00:45

Bom, não faz sentido usar SimpleXML apenas para usar o seu método asXML().
Para isso você usaria apenas funções de leitura de arquivo. (e.g. file_get_contents()).

<?php

// Exemplo de source
$str = '<cliente nome="joao" senha="joao123">';

// Nome de usuário para busca
$user = 'joao';

// Novos dados
$new_user = 'x';
$new_pass = 'y';

// Alteração
$str = preg_replace('/(<cliente nome=")' . $user . '(" senha=")[^\x22]+/',
					'\1' . $new_user . '\2' . $new_pass, $str);

// Exibindo
print htmlentities($str);

?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#10 Dantes

Dantes

    Turista

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

Posted 04/02/2007, 01:19

Eclesiastes

mais como eu faria isso com um arquivo xml? =x
eh que eu preciso pegar o nome e senha de um arquivo xml e depois trocar pela nova senha...

tipo...cabei de conseguir ler eles separadamente.. criei um arquivo xml assim apenas para teste

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<chat>
	<message>
		<timestamp>1161790302</timestamp>
		<author>Maugrim</author>
		<text>Hello World!</text>
<timestamp>11617903021</timestamp>
		<author>Maugrim1</author>
		<text>Hello World1!</text>
	</message>
</chat>

e usei o php dessa maneira

<?
$xml = simplexml_load_file('teste.xml');
 
foreach($xml->message as $message)
{
	$timestamp = $message->timestamp;
	$author = $message->author;
	$text = $message->text;
	echo 'Date: ', date($timestamp), ' Author: ', $author, ' Message: ', $text, '<br />';

}
?>

e funcionou certinho...soh q pegando ele linha por linha...eu precisaria pegar ele todo em uma string para depois tratar ela, que seria trocar os dados, e sobrescrever dinovo no xml certo?
alguem sabe como eu poderia fazer isso?

agradeco desde ja..pq ta osso :(

#11 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 04/02/2007, 04:28

Cara, um arquivo xml serve pra armazenar informações específicas e pré-definidas, ao lê-las não faz sentido você usar str_replace, strpos e essas coisas... Você tem que ler a tag que você quer, e pra isso que usa a classe do parser xml.

#12 Dantes

Dantes

    Turista

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

Posted 04/02/2007, 12:10

bem...eu consegui fazer ler ele certinho...obrigado a kem ajudo ae ;)




1 user(s) are reading this topic

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

IPB Skin By Virteq