login
Inicia sessió

register
Registra't

El blog del Dani

Obtenir el primer paràgraf amb PHP

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;

}

Comentaris (2)29-08-2011 13:10:25Programació

danioldaniol blog, 29-08-2011 13:12:27

Observacions, si s'usa unicode, es necessitaria establir globalment: mb_internal_encoding("UTF-8");

danioldaniol blog, 18-11-2011 16:41:30

... i usar en comptes d'strlen la funció mb_strlen

Escriu un nou comentari:

Comentari extern

Nom:


Registrar-me a flog.cat

Usuaris registrats

Usuari de flog.cat:

Contrasenya: