Ir para conteúdo

POWERED BY:

Arquivado

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

edmeneghel

Caracter

Recommended Posts

Imagem Postada pessoal estou com o seguinte problema, fiz um livro de visitas em php e no campo mensagem quando alguem digita muita coisa sem espaco ex:

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

kkkkkkkkkkkkkkkkkkkkkkkkkkk

ele distorce a pagina de exibição das mensagens pois ele nao quebra de linha. queria exibir o texto escrito como do mesmo jeito do memo, pois nele se você for digitando tudo junto quando chega no final da linha ele desce para a linha de baixo automaticamente, como faço isso

 

obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem q contar a quantidade de caracteres q da uma linha e pega a string q você vai colcar e coloca <br> depois da quantidade!ai ele vai fazer oq você quer!the void

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem q contar a quantidade de caracteres q da uma linha e pega a string q você vai colcar e coloca <br> depois da quantidade!

ai ele vai fazer oq você quer!

 

 

 

the void

Imagem Postada Teria como você me mostrar como fazer este codigo, ou onde eu o consigo? pois sou iniciante em php, nao tenho muita esperiencia ainda

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega, usa esta função, vai te ajudar:

function quebra($string,$size)

{

$length = strlen($string);

 

  for($i=0;$i < $length ;$i+=$size)

  {

  $temp .= substr($string,$i,$size)."<br>";

  }

return $temp;

}

 

$comentarios = "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk";   

$string = quebra($comentarios,40);

echo $string;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega, usa esta função, vai te ajudar:

function quebra($string,$size)

{

$length = strlen($string);

 

  for($i=0;$i < $length ;$i+=$size)

  {

   $temp .= substr($string,$i,$size)."<br>";

  }

return $temp;

}

 

$comentarios = "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk";    

$string = quebra($comentarios,40);

echo $string;

ae amigo se não for pedir muito teria como você mudar a function para ao inves de a cada 40 caracter ele quebra de linha ele verificar se tem alguma palavra com mais de 15 caracters, tipo assim

aaaaaaaaaaaaaaaaaaaaaaaa se a palavra for deste tamanho que ele quebra de linha ficaria assim

 

aaaaaaaaaaaaaaa

aaaaaaaaa

 

entendeu? ao inves de procurar na linha ele so procure por palavras com + de 15 caracter

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega, usa esta função, vai te ajudar:

function quebra($string,$size)

{

$length = strlen($string);

 

  for($i=0;$i < $length ;$i+=$size)

  {

   $temp .= substr($string,$i,$size)."<br>";

  }

return $temp;

}

 

$comentarios = "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk";    

$string = quebra($comentarios,40);

echo $string;

ae amigo se não for pedir muito teria como você mudar a function para ao inves de a cada 40 caracter ele quebra de linha ele verificar se tem alguma palavra com mais de 15 caracters, tipo assim

aaaaaaaaaaaaaaaaaaaaaaaa se a palavra for deste tamanho que ele quebra de linha ficaria assim

 

aaaaaaaaaaaaaaa

aaaaaaaaa

 

entendeu? ao inves de procurar na linha ele so procure por palavras com + de 15 caracter

 

obrigado

Tipo v se esse script funcionaria, ou algo parecido com isso a ideia e a seguinte

 

tem um contador, este sempre que achar um espaco ele vai receber 0, senao ao chegar a 15 ele faria a quebra de linha...

 

function quebra($string,$size)

{

$length = strlen($string);

$cont = 0;

 

for($i=0;$i < $length ;$i+=$size)

{

if ($string = ' ')

{

$cont = 0;

}

else

{

$cont = $cont+1;

}

if (cont > 15)

{

$temp .= substr($string,$i,$size)."<br>";

}

}

return $temp;

}

 

$comentarios = $mensagem;

$string = quebra($comentarios,15);

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, é so você trocar de 40 para 15 no script que te passei e ele vai quebrar sempre apartir disso!

Imagem Postada mas no script q você passou ele conta a linha (40) e eu nao quero q ele conte a linha, e sim que ele conte as palavras com mais de 15 caracters e somente quebre essas palavras entendeu?

exemplo:

mensagem:

estou enviando esta mensagem para fazer um teste de escrita kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

 

quero que fique assim

estou enviando esta mensagem para fazer um teste de escrita kkkkkkkkkkkkkkk<br>kkkkkkkkkkkkkkk<br>kkk

 

no seu script ele faz o seguinte

estou enviando e<br>sta mensagem pa<br>ra fazer um tes<br>te de escrita k<br>kkkkkkkkkkkkkkk<br>kkkkkkkkkkkkkkk<br>kk

 

entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra comeca o script tem uso mto especifico.Imagine o seguinte: O APLICATIVO Ë UM GUESTBOOK.A mensagem nao tera apenas kkkkkkkkkkkkkkkkkkkkkkkkkkkkkse voce contar o tamanho da variavel ele ira acusar erro...bastaria voce escrer isso..."GOSTEI DO SEU SITE, É BEM" que jah teria estourado pois teria mais de 15 ou quantos caracteres tiverem nao resolvendo o problema.Uma solucao que tive nesse momento foi quebrar a mensagem inteira.Fazendo da seguinte forma:$msg -> corresponde a mensagem de post no guest book, sendo ela uma frase/mensagem longa.$limite = 15 (numero maximo de caracteres por palavravoce faria uma quebra convertendo em palavras, da seguinte forma:$palavras = str_word_count($msg,1);for($i=0;$i < str_word_count($msg);$i++){if(strlen($palavras[$i]) > $limite){$palavras[$i] = str_replace($palavras[$i], 0, $limite);}}$msg_refeita = "";for($z=0;$z<count($palavras);$z++){$msg_refeita .= $palavras[$z]." ";}Isso deve resolver ou algo semelhante...

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, troca o primeiro pelo segundo, pois o primeiro é para HTML:

"<br>"

por:

"\n"

você nao entendeu os <br> que eu coloquei no na explicacao é so pra indicar a quebra de linha o codigo funcionou perfeito so que ele conta a linha inteira, ae ao chegar a 15 ele quebra a linha... so que nao é isso que eu quero, eu preciso que ele procure em todo o a mensagem mas que ele so quebre de linha nas palavras com mais de 15 caracters sem espaco

ex:

123456789101112131415 ele vai quebrar a linha desta palavra por que ela tem 21 caracter sem nenhum espaco ele ficaria assim

123456789101112

131415

agora se a palavra fosse assim 123456789101112 131415 ele nao faria a quebra de linha pois entre o 12 e o 13 ele tem um espaco em branco entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra comeca o script tem uso mto especifico.Imagine o seguinte: O APLICATIVO Ë UM GUESTBOOK.A mensagem nao tera apenas kkkkkkkkkkkkkkkkkkkkkkkkkkkkkse voce contar o tamanho da variavel ele ira acusar erro...bastaria voce escrer isso..."GOSTEI DO SEU SITE, É BEM" que jah teria estourado pois teria mais de 15 ou quantos caracteres tiverem nao resolvendo o problema.Uma solucao que tive nesse momento foi quebrar a mensagem inteira.Fazendo da seguinte forma:$msg -> corresponde a mensagem de post no guest book, sendo ela uma frase/mensagem longa.$limite = 15 (numero maximo de caracteres por palavravoce faria uma quebra convertendo em palavras, da seguinte forma:$palavras = str_word_count($msg,1);for($i=0;$i < str_word_count($msg);$i++){if(strlen($palavras[$i]) > $limite){$palavras[$i] = str_replace($palavras[$i], 0, $limite);}}$msg_refeita = "";for($z=0;$z<count($palavras);$z++){$msg_refeita .= $palavras[$z]." ";}Isso deve resolver ou algo semelhante...

é isso eu quero restringir... ele executaria o script para a quebra de linha no caso de palavras com mais de 15 caracters, se tiver menos de 15 ele nao executara o script. So que no seu script ele substitui a palavra... e eu nao quero substituir quero apenas ao chegar a 15 caracter ele fazer(acrescentar) a quebra de linha <br>entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso:

$explode = explode(" ", $texto);

$size = sizeof($explode);

for ($num=0;$num<$size;$num++) {

$palavra = $explode[$num];

$chars = strlen($palavra);

$div = $chars/20;

$vezes = ceil($div);

for ($num2=0;$num2<$vezes;$num2++) {

$ini = $num2*20;

$sub = substr($palavra,$ini,20);

$palavra2 .= " $sub";

}

}

if ($num==0) {

$texto2 = "$palavra2";

} else {

$texto2 .= " $palavra2";

}

Vê se da. Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso:

$explode = explode(" ", $texto);

$size = sizeof($explode);

for ($num=0;$num<$size;$num++) {

$palavra = $explode[$num];

$chars = strlen($palavra);

$div = $chars/20;

$vezes = ceil($div);

for ($num2=0;$num2<$vezes;$num2++) {

$ini = $num2*20;

$sub = substr($palavra,$ini,20);

$palavra2 .= " $sub";

}

}

if ($num==0) {

$texto2 = "$palavra2";

} else {

$texto2 .= " $palavra2";

}

Vê se da. Imagem Postada

 

 

 

Valew prescot-san funcionou exatamente como eu precisava...

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.