Ciao compaesano!
Ho scritto queste righe spinto da un impulso campanilistico!
Codice PHP:
<?php
$frase = "Questa è un articolo molto lungo.\nUna frase\n".
"a cavallo. Voglio riuscire a estrapolarne una introduzione. Deve essere lunga circa 150 caratteri.".
"Frase uno.\n".
"Frase 2. Frase 3. Complichiamo con un indirizzo web [url]www.ciao.it.[/url] Altra frase un po' più lunga.";
$numero_di_caratteri = 150;
preg_match_all("/(\.\s)+/",$frase,$out,PREG_OFFSET_CAPTURE);
$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];
}
}
echo substr($frase, 0, $offset_minima_distanza + 1);
?>
ti restituiscono una introduzione della $frase con lunghezza variabile ma il più vicina possibile ai $numero_di_caratteri
La frase viene tagliata nei punti in cui c'è un punto seguito da uno spazio o un accapo o una tabulazione ecc.
Richiesto PHP 4.3 e superiori
Fammi sapere se funziona!
P.S.: Forza Bari, tutti in C