php如何将文本放入框中

php如何将文本放入框中,php,text,fonts,truetype,Php,Text,Fonts,Truetype,我有一个长方体的边界。 是否可以在不知道文本大小的情况下将文本(使用自定义字体)放入框中。 我的意思是,是否有一个php函数可以设置适当的文本大小,以便将文本放入用户定义的框中? 我不需要文本包装 我找到的唯一功能是和 imagettfbbox的作用正好相反(给出边界,提供字体大小),而imagettftext仅在fontSize已知的情况下用于在图像上写入文本。是否使用php gd?如果是这样,那么我将使用imagettfbbox。只需定义除大小之外的所有参数。然后在大小上超出该循环,直到它足

我有一个长方体的边界。 是否可以在不知道文本大小的情况下将文本(使用自定义字体)放入框中。 我的意思是,是否有一个php函数可以设置适当的文本大小,以便将文本放入用户定义的框中? 我不需要文本包装

我找到的唯一功能是和


imagettfbbox的作用正好相反(给出边界,提供字体大小),而imagettftext仅在fontSize已知的情况下用于在图像上写入文本。

是否使用php gd?如果是这样,那么我将使用
imagettfbbox
。只需定义除大小之外的所有参数。然后在大小上超出该循环,直到它足够小,适合您定义的空间。我以前做过这个。它不会在内存中创建任何实际的图像,因此速度非常快(比实际创建图像快得多)

用于($size=40;$size>5;$size--){
$sizearray=imagettfbbox($size,0-,'font.ttf',$message);
$width=$sizerray[0]+$sizerray[4];

如果($width我想到了这一点,但假设性能会受到影响..很高兴知道事实并非如此..谢谢!我会尝试一下!如果你对范围有很好的猜测,你可以调整for循环中的常数。你可以向上计数,而不是向下计数。如果你的宽度远远超出阈值,你也可以增加/减少一个以上。al这些都是你担心性能的想法。你也可以计时,我打赌这个循环比你实际的图像工作/生成/导出等花费的时间要少得多
for($size=40;$size>5;$size--){
  $sizearray=imagettfbbox ( $size , 0- , 'font.ttf' , $message );
    $width=$sizearray[0] + $sizearray[4];
    if($width<$threshold/*you define*/){
      //you've got your $size
      break;
    }
}