paginazione testo senza troncare le parole

ladyalexa

Nuovo Utente
13 Ott 2014
2
0
0
Salve a tutti!

Ho trovato uno script che fa esattamente quel che a me serve ossia suddividere un testo estratto da db in più pagine.
Il problema è che tronca le parole perché è impostato per troncare il testo a tot caratteri senza controlli.Potete aiutarmi voi per favore?Grazie in anticipo! :)

lo script:

PHP:
$lunghezza_stringa = (isset($stringa) AND is_string($stringa)) ? strlen($stringa) : 0;
$lunghezza_stringa_di_ogni_pagina = 50;
$numero_pagine = ceil($lunghezza_stringa/$lunghezza_stringa_di_ogni_pagina);
$pagina_corrente = isset($_GET['pg']) ? intval($_GET['pg']) : 1;
$start_substring = ($pagina_corrente-1) * $lunghezza_stringa_di_ogni_pagina;
$contenuto_pagina = substr($stringa, $start_substring, $lunghezza_stringa_di_ogni_pagina);

echo '<h1>' . $contenuto_pagina . '</h1>';

if($numero_pagine>0)
    {
    echo '<h2>Pagine:</h2>';
    for($i=1; $i<=$numero_pagine; $i++)
        {
        $style_page = ($pagina_corrente==$i) ? "color: red;" : "color: blue;";
        echo '<a href="'.$_SERVER['PHP_SELF'].'?pg=' . $i .'" style="' . $style_page . '">' . $i . '</a> | ';
        }
    }
 
Ciao, per suddividere il testo in parole puoi utilizzare explode(" ",$testo), avrai un array con tutte la parole poi puoi applicare la stessa tecnica
 
Grazie per la risposta,alla fine ho risolto in altro modo.Potete chiudere o cancellare la diacussione,grazie!
 
Perché chiuderla o cancellarla? Le discussioni servono anche ad altri, magari per evitare di fare la stessa domanda e per questo si dovrebbe sempre postare la soluzione.
Comunque se dovesse servire a qualcun altro si usa la funzione del PHP worwrap() che fa quel che vogliamo.
Esempio:
PHP:
$numeroDiCaratteri = 50;
$termine = '<br>';
$fraseTagliata = wordwrap($fraseIntera, $numeroDiCaratteri, $termine, true);
In pratica:
  • $numeroDiCaratteri è il punto dove dovrebbe essere tagliata la stringa;
  • $termine è il tipo di "a capo";
  • true serve a indicare di non troncare la stringa al 50° carattere ma allo spazio immediatamente successivo.
Dal manuale: http://it1.php.net/manual/en/function.wordwrap.php
 

Discussioni simili