• Moderatore

    Scrivere un tot di parole da una frase

    Ciao ragazzi, ho un problemino... poniamo che io abbia una frase, alloggiata in un DB MySQL, lunga 300 parole. Di questa frase voglio far scrivere, come fosse un'intro, 50 parole, facendole seguire da tre puntini e dal "continua".

    Ora, come faccio a "troncare" la frase intera?

    Grazie mille, ho provato in tutti i modi ma nulla... fra un po' metto la scolorina sullo schermo per cancellare quello che non si deve vedere... :sbonk:


  • Moderatore

    Ciao.

    $strl=strlen($co); // lunghezza della stringa
    if ($strl>=$numero_caratteri_lista) { // se più lunga di tot caratteri
    $co=substr($co,0,$numero_caratteri_lista); // li taglia
    $strsp=strrpos($co," "); //poi trova l'ultimo spazio
    $co=substr($co,0,$strsp); //taglia sino lì...
    $co.="..."; //ed aggiunge i puntini
    }

    cosa fa sto codice?

    $co è la stringa che prendi dal db.
    $numero_caratteri_lista è il numero max di caratteri ammessi. tu potresti impostarlo a 50 ad esempio.

    Spero ti possa esser utile 🙂 :ciauz:


  • Moderatore

    Grazie mille massy, mi hai risolto il problema... funziona alla grande!!

    Per semplicità ho impostato $numero_caratteri_lista=80, nel caso un giorno mi giri di renderlo dinamico... 🙂

    Una curiosità mia, non ho intenzione di toccare lo script che hai scritto perchè è ottimo... substr taglia una stringa in un tot di lettere, ma non esiste una funzione che taglia in un tot di parole?

    Lo so, alla fine sarebbe inutile perchè avrebbero la stessa funzione, ti ripeto, è solo una mia curiosità...

    Grazie ancora :yuppi:

    :ciauz:


  • Moderatore

    Non credo che esista una funzione del genere.

    Potresti ovviare e costruirtela, dividendo la stringa usando lo spazio come separartore (e magari per farla precisa utsando anceh la punteggiatura).

    :ciauz:


  • Moderatore

    Grazie massy, appena ho tempo magari la costruisco una ad hoc... se lo faccio la posto 🙂

    Grazie ancora... :ciauz: