Ir para conteúdo
Fórum Script Brasil
  • 0

Wordrap


diguinho

Pergunta

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..

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 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...

Link para o comentário
Compartilhar em outros 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!

Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros 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()

Link para o comentário
Compartilhar em outros 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!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...