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

fil79

php-formatar parágrafos

8 mensagens neste tópico

Boas

Estou a usar um editor javascript http://tinymce.moxiecode.com/ para editar texto e inserir numa tabela. Ao carregar no enter o próprio editor cria a tag HTML <p>..

Acontece que a página que recebe estes dados tem de ser desta maneira (usei também as tags para explicar como pretendo qu fique):

<table>
<tr><td>logo  empresa</td></tr>
<tr>
    <td>1ª parágrafo(lado esquerdo)  </td><td>2ª parágrafo(lado direito)</td>
</tr>
<tr><td>logo  empresa</td></tr>
<tr>
    <td>3ª parágrafo(lado esquerdo)  </td><td>4ª parágrafo(lado direito)</td>
</tr>

//etc.......

</table>

A minha dúvida é como posso fazer isto no php..como posso partir esta string desta maneira.

Espero que me tenha feito entender

Desde já agradeço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Tás perto de um problema com o qual eu me deparei e guardei a solução na gaveta para futura implementação :)

Mas para te responder de uma forma diferente, podes usar regex em php para correr o conteúdo dos td's e ver a informação deles.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu poderia fazer assim:


<?php
$texto="<p>Ola tudo bem</p><p>Como estas</p>";
$paragrafo=explode('</p>',$texto);//Isto separa $texto pelo </p> tranformando $paragrafo num array
echo '
<table>

<tr><td>logo empresa</td></tr>
<tr>
<td>'.$paragrafo[0].'</td><td>'.$paragrafo[1].'</td>
</tr>

<tr><td>logo empresa</td></tr>
<tr>
<td>'.$paragrafo[2].'</td><td>'.$paragrafo[3].'</td>
</tr>
</table>

o problema é se o utilizador carrega várias vezes no enter, ficando o texto que vem da base de dados assim:

<p>paragrafo1</p>

<p>paragrafo2</p>

<p> </p>

<p> </p>

<p> </p>

<p>paragrafo3</p>

e assim não vai funcionar...necessito de saber se o parágrafo tem de facto texto ou é somente mais uma quebra de linha..parece-me que depois do explode ainda terei de usar um foreach

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A tabela vai ter no máximo 4 parágrafos ou podem ser mais/menos?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

os páragafos poderão ser ilimitados...saí eu supor que será necessário o foreach depois do explode..tenho é de criar uma instrução para ser considerado parágrafo somente os que não começam por um  ...penso que é essa a lógica

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Algo assim:

<?php
$texto="<p>Ola tudo bem</p><p>Como estas</p><p> </p><p>Ola tudo bem</p><p>Como estas</p>";
$paragrafo=explode('</p>',$texto);//Isto separa $texto pelo </p> tranformando $paragrafo num array
$coluna = 1; //A coluna
echo '
<table><tr><td>logo empresa</td></tr>';
foreach($paragrafo as $nome => $value){
if ($coluna == 1 and $value != "<p> "){
	echo '<tr>
	<td>'.substr($value, 3).'</td>';
	$coluna = 2;
} elseif($value != "<p> ") {
	echo '<td>'.substr($value, 3).'</td>
	</tr>';
	$coluna = 1;
}

}
echo '</table>';

?>

No meu computador funcionou. Se tiveres dúvidas no código não hesites em perguntar. :)

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