Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

renanziNhu

Quebra texto

Recommended Posts

Bom gente eu criei um sistema de mural de recados, só que o texto da mensagem não vai um pra de baixo do outro ex:

 

eu queria que a mensagem

ficasse do jeito que eu

estou escrevendo

 

mais não ela fica assim ex:

 

ela não para, fica infinitamente assim, pois queria igual ao exemplo que está a cima.

 

veja como eh o script

 

<?

require ("conectdb.php");

$sql = "SELECT * FROM mural ORDER BY id DESC LIMIT 11";


$limite = mysql_query("$sql");

while  ($sql = mysql_fetch_array ($limite) ) {

$id = $sql['id'];
$nome = $sql['nome'];
$email = $sql['email'];
$cidade = $sql['cidade'];
$mensagem = $sql['mensagem'];


?>
<br>
<table width="270" border="0" align="center" cellpadding="0" cellspacing="0">
 <tr>
   <td colspan="2"><span class="nome"><b>De:</b> <a href="<? echo"mailto:$email";?>"><? echo"$nome";?></a></span><br>
     <span class="cidade"><b>Cidade:</b> <? echo"$cidade";?></span></td>
 </tr>
 <tr>
   <td colspan="2"><div align="justify"><span class="mensagem"><? echo"$mensagem";?></span></div></td>
 </tr>
</table>
<? } ?>
<br>

 

me ajudem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que usar o nl2br na hora de gravar no banco de dados. Depois só exibir com echo.

 

Carlos Eduardo

 

EDIT - Não vai quebrar a linha se for tudo junto... Tenta colocar palavras reais. Pode sem um lorem ipsum mesmo.

http://www.lipsum.com/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que usar o nl2br na hora de gravar no banco de dados. Depois só exibir com echo.

 

Não precisa, não.

Dá para armazenar apenas \n no BD. Depois usa nl2br() só para exibir.

 

 

 

Se não funcionar, eu me aposento.

 

não funfou

 

Não funcionou pois foram usadas duas variáveis diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o problema é o texto que está sendo usado... Está assim...

tetettttddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

 

Daí não vai quebrar o texto mesmo...

 

Quote

Você tem que usar o nl2br na hora de gravar no banco de dados. Depois só exibir com echo.

 

Não precisa, não.

Dá para armazenar apenas \n no BD. Depois usa nl2br() só para exibir.

Você tem razão.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tentei mais nem as mensagens apareciam agora

 

coloquei assim

<? $mensagem = nl2br($sql['mensagem']);?>

 

Ok,

/**
 * Converte quebras de linhas em <br />
 * @param string $str A string que será convertida
 * @return string A nova string
 */
function crlf2br( $str ){
    return( preg_replace( "/(\\r\\n|\\r|\\n)/" , "<br />\n" , $str ) );
}

$str = "teste\r\nnovalinha\noutralinha\r";
echo crlf2br( $str );

Esse ai tem que funcionar

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

eu tentei mais nem as mensagens apareciam agora

 

coloquei assim

<? $mensagem = nl2br($sql['mensagem']);?>

 

Ok,

/**
 * Converte quebras de linhas em <br />
 * @param string $str A string que será convertida
 * @return string A nova string
 */
function crlf2br( $str ){
    return( preg_replace( "/(\\r\\n|\\r|\\n)/" , "<br />\n" , $str ) );
}

$str = "teste\r\nnovalinha\noutralinha\r";
echo crlf2br( $str );

Esse ai tem que funcionar

 

O problema não está ai..

 

O Problema é que ele está colocando uma string que não tem quebras ( aaaaaaaaaaaaaaaaaaaaaaaaaaaaa)...

 

Se ele colocar textos normais vai funcionar...

 

A não ser que "aaaaaaaaaaaaaaaaaaaaaa" seja parte do conteúdo, ele irá ter que fazer uma função para cortar a string em pequenos pedaços, que não é o caso dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o problema é o texto que está sendo usado... Está assim...

tetettttddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

 

Daí não vai quebrar o texto mesmo...

 

 

Se é isso mesmo, tem que usar str_split

 

http://www.php.net/manual/en/function.str-split.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.