3v4l.org

run code in 300+ PHP versions simultaneously
<?php function truncate($string, $chars = 100, $terminator = ' …') { var_dump($string, $chars, $terminator); var_dump(mb_strlen($terminator)); $cutPos = $chars - mb_strlen($terminator); var_dump($cutPos); var_dump(mb_strpos($string, ' ', $cutPos)); var_dump(mb_substr($string, 0, mb_strpos($string, ' ', $cutPos))); $boundaryPos = mb_strrpos(mb_substr($string, 0, mb_strpos($string, ' ', $cutPos)), ' '); var_dump($boundaryPos); var_dump(mb_substr($string, 0, $boundaryPos === false ? $cutPos : $boundaryPos) . $terminator); return mb_substr($string, 0, $boundaryPos === false ? $cutPos : $boundaryPos) . $terminator; } echo truncate("#mercedes#benz#flow#summer#drunk#guys#abiball#effzeh#köln#aha#böttiman#mied#labums …");

preferences:
56.83 ms | 402 KiB | 5 Q