1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Php

Discussão em 'Programação' iniciada por Baía, 18 de Outubro de 2004. (Respostas: 7; Visualizações: 894)

  1. Baía

    Baía Power Member

    Boas noites...

    Estou aqui com uma dúvida na manipulação de strings em PHP... aqui vai
    A minha intenção principal é pegar numa string de, p.e., 16 caracteres:
    "Ola eu sou o Baia" e reduzi-la a uma string com 8 seguida de "...", ficando:
    "Ola eu s...", é claro que a minha intenção real é fazer isto com digamos... strings com mais de 64 caracteres... transformá-las em strings com apenas 64 caracteres mais "...". Por as reticências é cagada! Mas eu n consigo é criar uma nova string temporária para onde copie apenas os 64 caracteres da string original para dps lhe juntar "..."! Alguém pode ajudar?

    Thanx alot...
     
  2. _freelancer_

    _freelancer_ Power Member

    PHP:
    error_reporting(E_ALL E_NOTICE); //Não ligues a isto :P é so para o meu php não mostrar erros por declaração de variáveis
    $string ="Ola eu sou o Baia e ontem dei um grande frango";//criação da string
    $string1 substr($string,0,17)."...";//corta a string de 0 a 17 e adiciona-lhe reticências
    echo $string;//mostra string
    echo $string1;//mostra string1
    Penso que deve ser isso que pretendes :)
     
    Última edição: 18 de Outubro de 2004
  3. inginheiiro

    inginheiiro Power Member

    ...

    $s="eu sou o baia, possuo um aviario e faço descontos de quantidade";
    $s=~s/(^.....)(.*)?(.....$)/$1 ... $3/gi;
     
  4. BraBo

    BraBo Banido

    Função a usar (se é que percebi)

    function hraFormatarStringNumCaracteres($string, $caracteres) {
    $comp = strlen($string);
    $sair = 0;
    $string2 = "";
    if ( $comp < $caracteres ) {
    $string2 = $string;
    } else {
    for ( $i = $caracteres ; $i > 0 ; $i-- ) {
    $char = substr($string, $i, 1);
    if ( ($char == " ") && ($sair == 0) ) {
    $string2 = substr($string, 0, $i); // Passa o Texto para a variável.
    $sair = 1;
    } // Fim do IF.
    } // Fim fo LOOP.
    $string2 .= " ...";
    } // Fim do IF.
    return $string2;
    } // Fim da Função


    // No fim chamas a função, dando-lhe o nº de caracteres que queres....
    $string = "Acho que deve ser isto que tu queres, e daí até pode não ser";
    $nova_string = hraFormatarStringNumCaracteres($string, 64);
     
  5. Ricardo Vidal

    Ricardo Vidal Power Member

    Desculpa mas esta função não faz exactamente a mesma coisa que o substr() ?
    Simplesmente contornaste a introdução do elemento de contagem inicial...
     
  6. Baía

    Baía Power Member

    substr() deu perfeitamente para fazer o que eu queria... :)
     
  7. Ricardo Vidal

    Ricardo Vidal Power Member

  8. BraBo

    BraBo Banido

    Se calhar ...

    Pelo que percebi, ele queria uma função que cortasse uma string por um "indeterminado" numero de caracteres, ou seja, que daria um numero máximo de caracteres e a função retornava uma string com esse comprimento mais umas reticências.
    Esta função apenas não corta palavras a meio, que já não dá para fazer apenas com substr();

    Se calhar era apenas retirar o comprimento da string que ele queria. Só lhe dei um add-on.
     
    Última edição: 18 de Março de 2005

Partilhar esta Página