Tengo la siguiente función, que recorta el texto a un número determinado de caracteres y cierra todas las etiquetas de forma automática.
Código PHP:
function cerrar_etiquetas($input)
{
$opened = array(); // loop through opened and closed tags in order
if(preg_match_all("/<(\/?[a-z]+)>?/i", $input, $matches))
{
foreach($matches[1] as $tag)
{
if(preg_match("/^[a-z]+$/i", $tag, $regs))
{
// a tag has been opened
if(strtolower($regs[0]) != 'br') $opened[] = $regs[0];
}
else if(preg_match("/^\/([a-z]+)$/i", $tag, $regs))
{
// a tag has been closed
unset($opened[array_pop(array_keys($opened, $regs[1]))]);
}
}
}
// close tags that are still open
if($opened)
{
$tagstoclose = array_reverse($opened);
foreach($tagstoclose as $tag) $input .= "</$tag>";
}
return $input;
}
cerrar_etiquetas(substr($noticia,0,$posicion));
Alguien me podría ayudar a modificar esa función para corregir esos problemas, por favor? un cordial saludo a todos!