• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Anonym

dividir ficheiro de texto

7 mensagens neste tópico

Boas, eu num ficheiro txt tenho isto:

<mensagem> ABC , DEF </mensagem><mensagem> GHI , JLM </mensagem><mensagem> NOP , QRS </mensagem>

e eu cria num script de php que fizesse o seguinte

• lia o ficheiro

• metia cada parte de <mensagem></mensagem> numa linha de uma tabela

• fosse possível eliminar uma certa parte, ou seja um <mensagem></mensagem>

e o que eu tenho feito usuamente para este tipo de projectos, é armazenar o texto num txt (como agora) e o php lia o ficheiro todo, fazia include. Mas agora por termos estéticos gostava de aprender (se der) a dividir o texto, porque o alojamento de texto não deixa mail() nem db's my_sql...

cumps,  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

grava em xml e para n teres o trabalho de aprender a ler ficheiros xml com php saca uma classe que te faça isso e ja esta...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está aqui a solução para o teu problema:

<?php
$ficheiro = "teste.txt";
if(file_exists("$ficheiro")) {
header("Content-Type: text/plain");
$a=file($ficheiro);
if(!empty($a)){
$b=explode('<mensagem>',$a[0]);
foreach($b as $c){
$d=explode('</mensagem>',$c);
echo $d[0]."\n";
  }                                                                                                                                         
  }
}
?>

Eu testei e funcionou...

O meu aquivo teste.txt tinha isso:

<mensagem>isto é um teste</mensagem><mensagem>isto é um teste também</mensagem><mensagem>isto é outro teste ...</mensagem>

e quando executei o meu código só mostrou:

isto é um teste

isto é um teste também

isto é outro teste ...

Acho que é isso que queres!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está aqui a solução para o teu problema:

<?php
$ficheiro = "teste.txt";
if(file_exists("$ficheiro")) {
header("Content-Type: text/plain");
$a=file($ficheiro);
if(!empty($a)){
$b=explode('<mensagem>',$a[0]);
foreach($b as $c){
$d=explode('</mensagem>',$c);
echo $d[0]."\n";
  }                                                                                                                                         
  }
}
?>

Eu testei e funcionou...

O meu aquivo teste.txt tinha isso:

<mensagem>isto é um teste</mensagem><mensagem>isto é um teste também</mensagem><mensagem>isto é outro teste ...</mensagem>

e quando executei o meu código só mostrou:

isto é um teste

isto é um teste também

isto é outro teste ...

Acho que é isso que queres!!

segundo o que percebi desse código.... Ele esconde o <mensagem></mensagem> e acrescenta um \n...

mas o que eu cria no fundo era, em cada linha de uma tabela ter uma mensagem...

:\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem para isso só tens de criar a tabela.

Esse código já faz tudo agora metes-lhe a tabela.

<table border="1">
<?php
$ficheiro = "teste.txt";
if(file_exists($ficheiro)) {
header("Content-Type: text/plain");
$a=file($ficheiro);
if(!empty($a)){
	$b=explode('<mensagem>',$a[0]);
	foreach($b as $c){
		$d=explode('</mensagem>',$c);
		echo "<tr><td>".$d[0]."</td></tr>";
	}                                                                                                                          
}
}
?>
</table>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

grava em xml e para n teres o trabalho de aprender a ler ficheiros xml com php saca uma classe que te faça isso e ja esta...

A questão não está em gravar em XML mas sim em colocar os dados numa estrutura XML.

O SAX aqui cai muito bem, muito melhor que o DOM.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem para isso só tens de criar a tabela.

Esse código já faz tudo agora metes-lhe a tabela.

<table border="1">
<?php
$ficheiro = "teste.txt";
if(file_exists($ficheiro)) {
header("Content-Type: text/plain");
$a=file($ficheiro);
if(!empty($a)){
	$b=explode('<mensagem>',$a[0]);
	foreach($b as $c){
		$d=explode('</mensagem>',$c);
		echo "<tr><td>".$d[0]."</td></tr>";
	}                                                                                                                          
}
}
?>
</table>

Está aqui a solução para o teu problema:

<?php
$ficheiro = "teste.txt";
if(file_exists("$ficheiro")) {
header("Content-Type: text/plain");
$a=file($ficheiro);
if(!empty($a)){
$b=explode('<mensagem>',$a[0]);
foreach($b as $c){
$d=explode('</mensagem>',$c);
echo $d[0]."\n";
  }                                                                                                                                         
  }
}
?>

Eu testei e funcionou...

O meu aquivo teste.txt tinha isso:

<mensagem>isto é um teste</mensagem><mensagem>isto é um teste também</mensagem><mensagem>isto é outro teste ...</mensagem>

e quando executei o meu código só mostrou:

isto é um teste

isto é um teste também

isto é outro teste ...

Acho que é isso que queres!!

era isso mesmo, muito obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora