<?php
function measure($str) {
}
$str = '<strong>foobar ulklkj lkjlkj</strong>';
$maxlength = 8;
$cutlength = $maxlength;
while (0 < $delta = $maxlength - measure
(substr($str, 0, $cutlength))) { print "\nDELTA: " . $delta . "\n";
$cutlength += $delta;
}
while (preg_match('#[a-zA-Z0-9]#', $str{$cutlength})) { ++$cutlength;
}
print "\nEND DELTA: " . $delta . "\n";
print substr($str, 0, $cutlength);
PD9waHAKCmZ1bmN0aW9uIG1lYXN1cmUoJHN0cikgewogIHJldHVybiBzdHJsZW4oaHRtbF9lbnRpdHlfZGVjb2RlKHN0cmlwX3RhZ3MoJHN0cikpKTsKfQogCiRzdHIgPSAnPHN0cm9uZz5mb29iYXIgdWxrbGtqIGxramxrajwvc3Ryb25nPic7CiAKcHJpbnQgc3RybGVuKCRzdHIpIC4gIlxuIjsKIAokbWF4bGVuZ3RoID0gODsKIAokY3V0bGVuZ3RoID0gJG1heGxlbmd0aDsKIAp3aGlsZSAoMCA8ICRkZWx0YSA9ICRtYXhsZW5ndGggLSBtZWFzdXJlKHN1YnN0cigkc3RyLCAwLCAkY3V0bGVuZ3RoKSkpIHsKICAgIHByaW50ICJcbkRFTFRBOiAiIC4gJGRlbHRhIC4gIlxuIjsKICAgICRjdXRsZW5ndGggKz0gJGRlbHRhOwp9CiAKd2hpbGUgKHByZWdfbWF0Y2goJyNbYS16QS1aMC05XSMnLCAkc3RyeyRjdXRsZW5ndGh9KSkgewogICAgKyskY3V0bGVuZ3RoOwp9CiAKcHJpbnQgIlxuRU5EIERFTFRBOiAiIC4gJGRlbHRhIC4gIlxuIjsKIApwcmludCBzdWJzdHIoJHN0ciwgMCwgJGN1dGxlbmd0aCk7