我在PHP中编写了一个递归函数来裁剪文本.裁剪后的文本将附加到末尾.非裁剪文本将以其原始状态返回.
如果文本符合最大宽度,它可以工作.但是,如果它不适合给定的宽度,函数将不会返回值,但它应该.似乎忽略了整个return语句.如果我用echo替换返回值,它会显示正确的值.
预期的结果:
-TEST ZIN
-TEST ZI
-TESTž
-TEST
-TES
-TE ......(没有在这里返回所以这将永远不会被显示)
function check_length($str, $max, $size = SIZE, $rec = false) {
echo "FUNCTION $str ";
list($left, , $right) = imageftbbox($size, 0, FONTURL, $str);
if($rec == false) {
if(($right - $left) > $max) {
echo 'if 1<br />';
check_length(substr($str, 0, -1), $max, $size, true);
} else {
echo 'else 1<br />';
return $str;
}
} else {
if(($right - $left) > ($max - 9)) {
echo 'if 2<br />';
check_length(substr($str, …Run Code Online (Sandbox Code Playgroud)