Visualizzazione risultati 1 fino 14 di 14

Discussione: [PHP] Troncare parola ad un determinato numero di lettere

  1. #1
    Guest

    Predefinito [PHP] Troncare parola ad un determinato numero di lettere

    Ciao a tutti, credo che il titolo dica tutto...
    Vorrei troncare una parola ad un determinato numero di lettere.
    Ad esempio se una parola è più lunga di 6 lettere deve essere troncata e mostrare solo le sei lettere ...esempio: lussuoso -> lussuo.
    E' possibile con PHP? Grazie mille!! xD

    PS. Ricordo che è tutto in una stringa, quindi ci sono più parole! =D

  2. #2
    Guest

    Predefinito

    Quindi vuoi uno script che taglia la stringa in un tot di caratteri, tagliando anche la parola.
    Prova questo => http://www.sastgroup.com/guide-per-i...re-una-stringa

  3. #3
    Guest

    Predefinito

    Ma io non voglio tagliata la stringa! >.<"
    Voglio solo troncata la parola più lunga ... xD

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Puoi fare in questo modo:
    Codice PHP:
    <?php
    $str
    = "Stringa da troncare";
    if (
    strlen($str) > 6) {
    $str = substr($str, 0, 6);
    }
    ?>
    In poche palore se la stringa e maggiore di sei caratteri la stringa prende il valore della stessa stringa, partendo dal primo, arrivando fino al sesto carattere.

    Ma credo che quello scritto nella risposta qui sopra faccia quasi la stessa cosa.

    Sevenjeak
    Software developer and much more

  5. #5
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,183

    Predefinito

    No. Non avete capito:

    Lui ha una stringa contenente molte parole e vuole che se una parola è più lunga di 6 caratteri venga troncata.
    Ad esempio, ha una stringa del genere:
    Codice PHP:
    $str = 'gatto cane ramarro rinoceronte cavallo altervista';
    e vorrebbe che si trasformasse in
    Codice PHP:
    $str = 'gatto cane ramarr rinoce cavall alterv';
    (non so se poi ho capito male io )

    Comunque un mio consiglio è quello di usare le espressioni regolari (anche se io non le ho mai usate e non ho idea di come si faccia una cosa simile!)

    Ciao!

  6. #6
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Ma usare le espressioni regolari qui è sprecato!

    Basta usa substr, vedi l'esempio di sevenjeak sopra.

  7. #7
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,183

    Predefinito

    Prova questa (non l'ho provata):

    Codice PHP:
    function accorcia($str)
    {
    $arr = explode(' ',$str);
    for(
    $i=0;$i<count($arr);$i++)
    $arr[$i] = substr($arr[$i],0,5);
    return
    implode(' ',$arr);
    }
    Ciao!

  8. #8
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    No. Non avete capito:

    Lui ha una stringa contenente molte parole e vuole che se una parola è più lunga di 6 caratteri venga troncata.
    Ad esempio, ha una stringa del genere:
    Codice PHP:
    $str = 'gatto cane ramarro rinoceronte cavallo altervista';
    e vorrebbe che si trasformasse in
    Codice PHP:
    $str = 'gatto cane ramarr rinoce cavall alterv';
    (non so se poi ho capito male io )

    Comunque un mio consiglio è quello di usare le espressioni regolari (anche se io non le ho mai usate e non ho idea di come si faccia una cosa simile!)

    Ciao!
    Se è questa l'interpretazione corretta, con le regexp si fa con una sola riga (non l'ho provata, ma dovrebbe essere corretta...):
    Codice PHP:
    preg_replace ('/\b(.{6}).*\b/', '$1', $text);
    Statemi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  9. #9
    Guest

    Predefinito

    Allora ho provato tutte le soluzioni che mi avete proposto, ma no ne funziona nessuna! >.<"
    Alemoppo ha capito perfettamente il mio problema.
    Io ho una frase, le parole più lunghe di tot lettere devono essere troncate, ma la frase deve rimanere sempre quella! xD
    Esempio: Sed ut perspiciatis unde omnis iste natus error sit voluptatem.
    Con PHP: Sed ut perspi unde omnis iste natus error sit volupt.
    Grazie mille.

  10. #10
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,183

    Predefinito

    Come non funziona?
    Adesso l'ho provata: qui.

    Quella pagina è fatta così:
    Codice PHP:
    <?php
    function accorcia($str)
    {
    $arr = explode(' ',$str);
    for(
    $i=0;$i<count($arr);$i++)
    $arr[$i] = substr($arr[$i],0,5);
    return
    implode(' ',$arr);
    }
    $stringa = 'Sed ut perspiciatis unde omnis iste natus error sit voluptatem';
    echo
    'Originale: '.$stringa;
    $stringa = accorcia($stringa);
    echo
    'Accoricata: '.$stringa;
    ?>
    Ciao!

    EDIT: se vuoi 6 caratteri naturalmente devi sostituire
    $arr[$i] = substr($arr[$i],0,5);
    con
    $arr[$i] = substr($arr[$i],0,6);
    Ultima modifica di alemoppo : 12-02-2010 alle ore 17.26.23

  11. #11
    L'avatar di ilmiocaos
    ilmiocaos non è connesso Utente
    Data registrazione
    03-06-2009
    Residenza
    Terra
    Messaggi
    226

    Predefinito

    Scusate, ma questa riga cosa rappresenta?

    Codice PHP:
    for($i=0;$i<count($arr);$i++)
    thanks a lots ^_^
    Quando il saggio indica la luna, lo sciocco guarda il dito - Proverbio Cinese



    Fatti Pubblicità sul mio sito Gratuitamente!: PageYou

  12. #12
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,183

    Predefinito

    Citazione Originalmente inviato da ilmiocaos Visualizza messaggio
    Scusate, ma questa riga cosa rappresenta?

    Codice PHP:
    for($i=0;$i<count($arr);$i++)
    thanks a lots ^_^
    è un semplice for!

  13. #13
    L'avatar di ilmiocaos
    ilmiocaos non è connesso Utente
    Data registrazione
    03-06-2009
    Residenza
    Terra
    Messaggi
    226

    Predefinito

    si quello lo sapevo ma cosa fa? non capisco cosa faccia la parte fra le parentesi
    Quando il saggio indica la luna, lo sciocco guarda il dito - Proverbio Cinese



    Fatti Pubblicità sul mio sito Gratuitamente!: PageYou

  14. #14
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,183

    Predefinito

    Codice PHP:
    for($i=0;$i<count($arr);$i++)
    {
    echo
    $arr[$i];
    }
    Ti scrive tutti gli elementi dell'array. Forse voi usate il foreach per queste cose, ma a me sta antipatico

    EDIT:

    Nota che count($array) ritorna la dimensione dell'array

    EDIT 2:

    Opps: ho fatto un errore gravissimo (in termini di ottimizzazione)
    Invece di
    Codice PHP:
    for($i=0;$i<count($arr);$i++)
    va:
    Codice PHP:
    $lunghezza = count($arr);
    for(
    $i=0;$i<$lunghezza;$i++)
    ...Come era prima ogni volta richiamava la funzione count() e rallenta "di parecchio" lo script!
    Ultima modifica di alemoppo : 12-02-2010 alle ore 23.00.21

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •