• 0
Sign in to follow this  
diguinho

Wordrap

Question

coloquei essa função no meu livro de visitas pra evitar q o cara escrevesse tf junto e a pagina ficasse distorcida..

wordwrap( $recado, 65, "<br />",1);

ta td certo com caracteres comuns mas se o kara colocar:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

dai ela não funciona!! porque isso??

alguém pode me ajuda..

Share this post


Link to post
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Estranho! Acho que isso não era pra acontecer... Bom, experimenta fazer isto ao invés da wordwrap():

$recado = preg_replace("/(\S{65})/", "\\1<br />", $recado);

Abraços!

Share this post


Link to post
Share on other sites
  • 0

não funciono... se coloco o @@@@@@@@@@ ele não quebra a linha..

Sério? No meu funciona! huh.gif

Eu utilizo ela num mural de recados que criei... acabei de testá-la com "@"...

Bom, mais uma tentativa:

$recado = preg_replace("/(\S{65})/", "\\1\n", $recado);

Até mais...

Share this post


Link to post
Share on other sites
  • 0

Que estranho...

Essa ER analisa se tem mais de 65 caracteres "não-espaços" seguidos... se tiver, ela inclui uma quebra de linha... e o "@" não é considerado espaço!

Bom, se eu tiver alguma outra idéia, eu volto aqui pra postar...

Falou!

Share this post


Link to post
Share on other sites
  • 0

Olá,

Segundo os comentarios que tem na php.net :

"The native function will then properly cut words after non-alphanumeric characters, not only after a plain space. "

a função tem um bug pois não divide a string após um caracter não alfanumerico.

(acho que um funciona e outro não por causa da versão do PHP)

No mesmo local existem varias alternativas...

de uma olhada:

http://br.php.net/wordwrap

só pesquisar um pouco biggrin.gif

Share this post


Link to post
Share on other sites
  • 0

so mais uma pergunta..

tem como eu conta quantos vezes o @ se repete num post..

tipo quando o cara tentar gravar se tiver mais de X vezes o @ ele não grava...

já da pra quebra o galho enquanto não arrumo isso..

Share this post


Link to post
Share on other sites
  • 0

Mas esse problema acontece só com o arroba? Como o jissa falou, essa função não quebra se o caractere não for alfanumério. Então, esse problema deveria acontecer tb se você enchesse de underscores, por exemplo: "________________" (já tentou pra ver o que acontece?)

Posta o código de como você tá fazendo isso pra gente analisar... wink.gif

***** EDITANDO *****

Dá uma olhada na função count_chars()

Share this post


Link to post
Share on other sites
  • 0

Não tem nada de mais no seu código, era pra funcionar com aquela ER que passei... :/

Usando a count_chars():

<?php

$quantidade = count_chars($recado, 0);

if ($quantidade['@'] > 65) {

    echo "Erro";

} else {

    // Grava registro no bd

}

?>

Abraços!

Share this post


Link to post
Share on other sites
  • 0

usei a função substr_count pra não deixa o kara postar mais de 65 @.. por enquanto vo dexa assim..

valeu pela ajuda..

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this