Aquesta funció útil programada en PHP obtén el primer paràgraf d'un text html (etiqueta <p>...</p>). Si és molt curt (segons el paràmetre $min_l) simplement agafa els primers $max_l caracters, eliminant tags i espais.
Els flags de la regex són i: no té en compte majúscules/minúscules, s: inclou els salts de línia, U: ungreedy (realment s'agafa així el primer paràgraf, en altre cas, s'agafaria tot el que hi hagués entre el primer i l'últim), u: text amb caracters unicode.
Si volguérem agafar els dos primers paràgrafs, s'hauria de canviar la funció a preg_match_all i concatenar els dos primers 'matches'.
function resumText($text,$min_l=30,$max_l=250) {
$resum="";
if(preg_match('#<p[^>]*>(.*)</p>#isUu',$text,$m)) {
$resum=$m[1];
}
if(strlen($resum)<$min_l) {
$resum=$text;
}
$resum=strip_tags($resum);
$resum=preg_replace('/[\s]+/u',' ',$resum); //elimina espais extra i linies
$resum=mb_substr($resum,0,$max_l);
return $resum;
}