El problema es que estamos cortando una palabra o bien por la tilde o por un caracter html.

 

Lo principal es limpiar nuestro texto a cortar quitandole las etiquetas html eso lo hacemos con la funcion

strip_tags($texto)

Pero aun asi no sera suficiente debemos crearnos una funcion que controle esos caracteres estraños.

 

function _substr($str, $length, $minword = 3)
{
$sub = »;
$len = 0;
foreach (explode(‘ ‘, $str) as $word)
{
$part = (($sub != ») ? ‘ ‘ : ») . $word;
$sub .= $part;
$len += strlen($part);
if (strlen($word) > $minword && strlen($sub) >= $length)
{
break;
}
}
return $sub . (($len < strlen($str)) ? ‘…’ : »);
}

function _substr($str, $length, $minword = 3){    $sub = »;    $len = 0;       foreach (explode(‘ ‘, $str) as $word)    {        $part = (($sub != ») ? ‘ ‘ : ») . $word;        $sub .= $part;        $len += strlen($part);               if (strlen($word) > $minword && strlen($sub) >= $length)        {            break;        }    }       return $sub . (($len < strlen($str)) ? ‘…’ : »);}

 

 

Ahora para aplicarselo a nuestro texto haremos.

 

echo _substr(strip_tags($texto),20);

Y ya nos ira todo sobreruedas.


Si quisieramos hacerlo pero contando lineas solo debemos hacer

function text_limit($str,$limit=10) {     if(stripos($str," ")){     $ex_str = explode(" ",$str);         if(count($ex_str)>$limit){             for($i=0;$i<$limit;$i++){             $str_s.=$ex_str[$i]." ";             }         return $str_s;         }else{         return $str;         }     }else{     return $str;     } }

 

Por admin

Deja una respuesta

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
100% Free SEO Tools - Tool Kits PRO