Jump to content


Photo

Quebra De Linha


  • Faça o login para participar
21 replies to this topic

#16 thiagorsl

thiagorsl
  • Visitantes

Posted 14/04/2004, 13:56

Na verdade errei em um linha tinha colocado $$ quando era $

<?
$cTexto = "Teste de texto para que se entenda a função chunk_split() hehehehehehehehehehheheheh";
$res=explode(" ",$cTexto);
for($x=0;$x<count($res);$x++){
if(strlen($res[$x])>10){
$res[$x]= chunk_split($res[$x],10," ");
}
}
$cTexto=implode(" ",$res);
echo $cTexto;
?>

Hora a sua separa toda as strings essa separa somente se a palavra tiver mais de 10 caracteres ou seja não vai distorcer tabela pois tem espaço no meio ;)

#17 dokkalfr

dokkalfr

    Ich bin der Geist der stets verneint

  • Usuários
  • 203 posts
  • Sexo:Não informado
  • Localidade:Svartheim
  • Interesses:Programação e sexo

Posted 14/04/2004, 14:00

a preocupação do thiagorsl é com quebra de palavras, tipo

fun
ção


o código dele só tem um errinho que é a variável variável que ele usa na 6ª linha ...
$$res[$x]
substituindo por
$res[$x]
deve dar certo!
Ainda com dúvida? Os melhores programadores PHP estão aqui
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks

#18 Mr_Armagedon

Mr_Armagedon

    Turista

  • Usuários
  • 45 posts
  • Sexo:Não informado
  • Localidade:Foz do Iguaçu, Pr

Posted 14/04/2004, 14:20

Na verdade errei em um linha tinha colocado $$ quando era $

<?
$cTexto = "Teste de texto para que se entenda a função chunk_split() hehehehehehehehehehheheheh";
$res=explode(" ",$cTexto);
for($x=0;$x<count($res);$x++){
if(strlen($res[$x])>10){
$res[$x]= chunk_split($res[$x],10," ");
}
}
$cTexto=implode(" ",$res);
echo $cTexto;
?>

Hora a sua separa toda as strings essa separa somente se a palavra tiver mais de 10 caracteres ou seja não vai distorcer tabela pois tem espaço no meio ;)

Cara, e se chega la no fim da tabela, e eu tive uma palavra tp... "otorrinolaringologista", o script vai quebrar ela no meio?
Esse q é o problema, mante a estrutura da tabela, sem compromete o texto.
Coisas da nossa gramatica com o php :P

#19 thiagorsl

thiagorsl
  • Visitantes

Posted 14/04/2004, 14:22

Ele vai apenas dar um espaço agora não tem como o php saber se ela vai estar na no inicio no fim da tabela ou faz isso ou o testo vai distorcer a tabela oq vc pode fazer é aumentar o numero limite de caracteres isso vai ajudar muito.....

Pq se colcoar 20 por exemplo vai ser dificil achar uma palavra com mais de 20 caracteres agora quando o kra escreve

heheheheheheheheheh


Facil, Facil ele coloca 20 caracteres ai vc separa só para não distorcer a tabela ;)

Edição feita por: thiagorsl, 14/04/2004, 14:23.


#20 dokkalfr

dokkalfr

    Ich bin der Geist der stets verneint

  • Usuários
  • 203 posts
  • Sexo:Não informado
  • Localidade:Svartheim
  • Interesses:Programação e sexo

Posted 14/04/2004, 16:06

na verdade tu pode botar um numero absurdo tipo 100, já que é impossível uma palavra (em português) ter 100 letras ... no caso de outras palavras, tanto no início quanto no fim da tabela, o wordwrap do navegador dá jeito!

acho melhor um numero absurdo desses pra permitir palavras que alguem esqueça de algum espaço ou inventar uma palavra sei lá ... oque não pode na verdade é que uma palavra exceda a largura da tabela ... entaum acho mais negócio testar quantos caracteres cabem na tua tabela sem deformá-la e definir o limite perto desse número!
Ainda com dúvida? Os melhores programadores PHP estão aqui
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks

#21 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 14/04/2004, 16:17

No meu Blog eu fiz assim... (Não posto o script, porquê ele está em casa... :D)

Caso 1: Eu conto o número de espaços da mensagem do usuário... se for 0, já sei que não tem espaços na palavra... Bloqueia o Script...

Caso 2: (Se a validação de cima falhar). Eu conto o número de letras da string. Agora eu vejo +/- quantos caracteres cabem sossegado na minha tabela, digamos 50. Multiplico o número de espaços (encontrado na validação anterior) por 50 e teste para ver se é maior que o número de caracteres. Se for, guardo no BD, senão for bloqueio a execução também...

O único problema é se você tiver uma coluna bem pequena... Tipo: 150px... aí acho que você teria de apelar para o chunk_split() mesmo...
Klaus Paiva
Conheça também: Taperás

#22 thalesalan

thalesalan
  • Visitantes

Posted 14/04/2004, 17:27

No meu Blog eu fiz assim... (Não posto o script, porquê ele está em casa... :D)

Caso 1: Eu conto o número de espaços da mensagem do usuário... se for 0, já sei que não tem espaços na palavra... Bloqueia o Script...

Caso 2: (Se a validação de cima falhar). Eu conto o número de letras da string. Agora eu vejo +/- quantos caracteres cabem sossegado na minha tabela, digamos 50. Multiplico o número de espaços (encontrado na validação anterior) por 50 e teste para ver se é maior que o número de caracteres. Se for, guardo no BD, senão for bloqueio a execução também...

O único problema é se você tiver uma coluna bem pequena... Tipo: 150px... aí acho que você teria de apelar para o chunk_split() mesmo...

Breve esplicação sobre a função chunk_split():

chunk_split
(PHP 3>= 3.0.6, PHP 4 )

chunk_split -- Divide uma string em pequenos pedaços
Descrição
string chunk_split ( string body [, int chunklen [, string end]])


Pode dividir uma string em pequenos pedaços que são úteis para e.g. converter base64_encode output para compatibilizar com semânticas RFC 2045 . Ela insere end (padrão para "\r\n") cada caracater chunklen (padrão para 76). Ela retorna uma nova string deixando a string original intocada. Exemplo 1. chunk_split() exemplo

<?php
// format $data using RFC 2045 semantics
$new_string = chunk_split(base64_encode($data));
?>






1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq