come realizzare il "leggi tutto"

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Innanzitutto mi scuso se ho sbagliato sezione, non avendo un'idea precisa su come viene impostato non so neanche di preciso dove collocare la mia domanda. Sempre più spesso si vede sui siti web due, tre righe di un articolo e poi "leggi tutto" che permette di leggere l'intero articolo. Vorrei realizzare la stessa cosa e mi sono chiesta come va esattamente impostato il codice? Una soluzione penso sia quella di scrivere su una pagina due, tre righe e linkare il "leggi tutto" ad un'altra pagina dove è presente tutto l'articolo. In questo caso le prime tre righe si ripetono e di conseguenza se vado a modificare qualche parola devo farlo in entrambe le pagine. Mi sono chiesta se non c'è un modo alternativo di impostare questa struttura.
Può sembrare una domanda stupida, ma se non mi tolgo il dubbio rimango con la domanda!
 
I siti che offrono questo sistema (e tutti quelli che vengono aggiornati periodicamente) usano un linguaggio dinamico come PHP e si appoggiano a database come MySQL per la memorizzazione dei contenuti, in modo che se vuoi modificare un contenuto non devi agire su tutte le pagine.
 
benissimo allora a questo punto devo cambiare la sessione del forum poichè io uso abitualmente php e mysql anche se non sono proprio un'esperta.
Ora la mia domanda è c'è uno script php che mi permette di estrarre da un campo solo le prime tre righe? oppure si creano due campi distinti; uno per le prime righe e un altro per l'intero testo?
[non so se devo aprire un altro post nella sessione php oppure viene spostato questo!!!]
Grazie
 
Devi contare i caratteri del testo con strlen($testo), decidere quanto vuoi tagliarla e continuare con 2 o 3 righe di codice.
se cerchi tagliastringa php trovi qualcosa di già fatto.
 
qualcosa come questa dovrebbe andare bene:
PHP:
<?php
function intro($testo, $lung_max, $finale) {
       return (count($str = explode(' ', $testo)) > $lung_max) 
      ?implode(' ', array_slice($str, 0, $lung_max)) . $finale : $testo;
   }
   //per cui:
   $testo = "Testo testo testo testo testo testo testo testo testo testo testo testo";
   $lung_max = 2;
   $finale = " .."; // qui metti il link "leggi tutto"
   $intro = intro($testo, $lung_max, $finale);
   echo $intro;
   //stampa "Testo testo .."
?>
 
Grazie dei suggerimenti. Sono riuscita ad ottenere quello che volevo. Ho utilizzato la function suggerita da Eliox ma poichè il testo io lo estraggo da un database, il richiamo della funzione l'ho impostato in questo modo:
PHP:
<?php
  require 'connessione.php';
     $txt_01 = "SELECT * FROM pagine WHERE nome = 'pinco'";
     $rst_01 = mysql_query("$txt_01",$link) or die("Errore query database: ".mysql_error());
     while ($riga = mysql_fetch_array($rst_01))
             {
                $titolo_pag = stripslashes($riga['titolo_pagina']);
                $testo = stripslashes($riga['testo']);
                $lung_max = 50;            /* numero delle parole che si vogliono visualizzare */
                $finale = "<br /><div align='right'><a href='url.php'>maggiori info</a></div>";     /* link di leggi tutto */
                $intro = intro($testo, $lung_max, $finale);
                echo ("$intro");
             }
?>

e non ho avuto problemi ad estrarre solo le prime righe e poi rinviare ad un'altra pagina per leggere tutto il testo :)
 
Metti tutto dentro una funzione, così la riutilizzi quando vuoi.
 

Discussioni simili