Io poco elegante ... tze. Allora tieni questo ... che è ancora meno elegante
codice:
// $text: testo originale
$tmp = $text;
$subStr = '';
$l = 0;
$tag = "\<img.*?\>";
$length = 100;
for (;;){
if (preg_match("/^((.*?)$tag)(.*)$/i",$tmp,$m))
if ($l+strlen($m[2])<$length)
{
$l+=strlen($m[2]);
$subStr.=$m[1];
$tmp = $m[3];
}
else { $subStr.=substr($m[1],0,$length-$l); break; }
else { $subStr.= substr($tmp,0,$length-$l); break; }
}
// echo $subStr;
// contiamo i caratteri
$tmp = preg_replace("/$tag/i",'',$subStr);
echo strlen($tmp);