Gerep 0 Denunciar post Postado Fevereiro 22, 2008 Pessoal, eu estou alimentando um comboBox com nomes de bairros da minha cidade Acontece que alguns bairro tem nomes muito grandes como "Prolongamento Jardim Doutor Antônio Petráglia" e quando a comboBox recebe este valor, ela fica do tamanho do texto, atrapalhando o resto do site porte empurra os ouros elementos pro lado. Alguém ai conhece alguma função que eu possa contar os caracteres e quebrar em um valor determinado? Eu já tentei substr_count() mas não tive sucesso porque ela precisa de um valor inicial e final e no caso, eu não posso usar um valor final porque posso ter bairros com nome muito grande como pequeno. Muito obrigado pelo tempo e atenção! Compartilhar este post Link para o post Compartilhar em outros sites
narizgudo 0 Denunciar post Postado Fevereiro 22, 2008 Acho que esse código serve pra um começo $bairro = "Prolongamento Jardim Doutor Antônio Petráglia"; if (strlen($bairro) > 30) { $bairro = substr($bairro,0,30); } Flw Compartilhar este post Link para o post Compartilhar em outros sites
Skyo 1 Denunciar post Postado Fevereiro 22, 2008 <? function quote($campo){ $digitos_max = 30; $campotr_to_count = html_entity_decode($campo); if(strlen($campotr_to_count) <= $digitos_max){return $campo;} $campo2 = substr($campotr_to_count, 0, $digitos_max - 3); $campo2 .= " ..."; return htmlentities($campo2);} ?> Compartilhar este post Link para o post Compartilhar em outros sites
narizgudo 0 Denunciar post Postado Fevereiro 22, 2008 Boa Skyo bem melhor o do skyo ^^ Compartilhar este post Link para o post Compartilhar em outros sites
Eduardo Matsuzaki 1 Denunciar post Postado Fevereiro 22, 2008 mas a do narizgudo é mais simples e faz a mesma coisa.! Compartilhar este post Link para o post Compartilhar em outros sites
Skyo 1 Denunciar post Postado Fevereiro 22, 2008 Não faz a mesma coisa =p. Compartilhar este post Link para o post Compartilhar em outros sites
Dórian Conde Langbeck 0 Denunciar post Postado Fevereiro 23, 2008 naum sei se vai servir no contexto em que você quer aplicar, mas... eu acharia melhor se antes de você usar um desses metodos pra "cortar" a string "na marra", passase por uma função abreviadora... tipow: function diminui_nome($nome) { $orig = array("Travessa", "Passagem", "Rodovia", "Avenida", "Doutor"); $mini = array("Tv.", "Pass.", "Rod.", "Av.", "Dr."); return str_replace($orig, $mini, $nome); } a função reduziria "Prolongamento Jardim Doutor Antônio Petráglia" para "Prolongamento Jardim Dr. Antônio Petráglia"... isso ajudaria a naum desorganizar o nome do local, se for implementada as substituições adequadas, pode ate eliminar a necessidade de "quebrar" a string... abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Skyo 1 Denunciar post Postado Fevereiro 23, 2008 Também é uma opção acima... Ele poderia incluir no array o "Jardim" também, como abreviação "Jd." Mas ai fica algo voltado à situações particulares. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 23, 2008 Eu sugerira a mesma solução (substr()) se não houvesse esta parte no post do Gerep: Eu já tentei substr_count() mas não tive sucesso porque ela precisa de um valor inicial e final e no caso, eu não posso usar um valor final porque posso ter bairros com nome muito grande como pequeno. Aí fiquei na dúvida: que tipo de restrição você pretende fazer, se não quer usar número máximo de caracteres? Compartilhar este post Link para o post Compartilhar em outros sites