Scusatemi ragazzi. Cerco da mesi un codice che mi aiutasse a dividere testo proveniente da DB in + pagine e credo grazie a voi di averlo trovato.
E' solo che vorrei una mano nel farlo funzionare.
codice:
<?php
session_start ();
include("dbconnect.php");
$query = "select *, DATE_FORMAT(data, '%d.%m.%Y')
as data2 FROM articoli where id='$id_articolo';";
$risultato = mysql_query($query,$db)
or die ("impossibile leggere News".mysql_error());
while ($valori = mysql_fetch_array($risultato)) {
$_GET['id'];
$titolo= $valori["titolo"];
$testo = $valori["testo"];
$autore = $valori["autore"];
$urlargomentoa = $valori["urlargomentoa"];
$argomentoa = $valori["argomentoa"];
$urlargomentob = $valori["urlargomentob"];
$argomentob = $valori["argomentob"];
$data2 = $valori["data2"];
echo" $titolo ";
echo" scritto da: $autore -:- in data $data2
";
$frase = "<div align=\"justify\"</div>$testo";
echo creaIntro($frase, 2000);
echo"
Argomenti correlati: <a href=\"$urlargomentoa\">1. $argomentoa</a>
-:- <a href=\"$urlargomentob\">2.$argomentob</a>";
}
mysql_free_result ($risultato);
mysql_close($db);
// -- funzione per tagliare il testo
function creaIntro($frase,$numero_di_caratteri)
{
// cerco i punti in cui terminano le frasi
preg_match_all("^(\<br /\>)+^",$frase,$out,PREG_OFFSET_CAPTURE);
// cerco l'interruzione più vicina a $numero_di_caratteri
$minima_distanza = strlen($frase);
$offset_minima_distanza = false;
foreach ($out[0] as $offset) {
$distanza = abs($numero_di_caratteri - $offset[1]);
if($distanza < $minima_distanza) {
$minima_distanza = $distanza;
$offset_minima_distanza = $offset[1];
}
}
if($offset_minima_distanza) {
// restituisco l'introduzione some sottostringa
// di lunghezza $offset_minima_distanza + 1
echo substr($frase, 0, $offset_minima_distanza);
} else {
// se non ho trovato una interruzione restituisco tutta la frase
echo $frase;
}
}
?>
Ho provato ma... sono una schiappa.
Mi aiutereste?