3v4l.org

run code in 300+ PHP versions simultaneously
<?php function str_truncat($string, $nbrchar = 50, $charsfin = "", $addstrfin = "...") { if($charsfin == "" && strlen(strip_tags($string)) < $nbrchar) { $stringtruncat = strip_tags($string); } else { $nbr = ($nbrchar)/250; $addchars = ""; if($nbr > 1) { for($i = 0;$i < (int)$nbr;$i++) { $nbrchar -= 250; $addchars .= ".{250}"; } } $addchars .= ".{".$nbrchar."}"; $str1 = preg_replace("(\[+[a-z0-9]+\]{1,2})", "", str_replace("\n"," ",strip_tags($string))); $str2 = preg_replace("(\[+[a-zA-Z:0-9]+[ |]([^\]]+)*\]+)", "\\1 ", $str1); $preg = "/^(".$addchars.($charsfin?"[^".$charsfin."]*":"").").*$/"; $str3 = preg_replace($preg, "\\1".$addstrfin, $str2); $stringtruncat = preg_replace("/ ".str_replace(".", "\.", $addstrfin)."$/", $addstrfin, $str3); } return htmlspecialchars($stringtruncat, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1'); } $var = "&euro;"; $var = str_truncat($var); $var = html_entity_decode($var, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1'); echo $var;

preferences:
36.09 ms | 402 KiB | 5 Q