Jump to content

php-formatar parágrafos


fil79
 Share

Recommended Posts

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

MCITP-MCTS-MCP

Link to comment
Share on other 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.

Link to comment
Share on other 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

MCITP-MCTS-MCP

Link to comment
Share on other 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. 🙂

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.