有没有办法将字符串长度转换为像strlen()这样的东西在PHP中转换为像素长度?

时间:2013-01-01 17:47:17

标签: php image-manipulation

例如:

<?php
$string = 'Foo bar';

$length = strlen($string);

echo '<div style="width: '.$length.'px;">'.$string.'</div>';

上面显然不起作用,因为$ length是7而7px小于输出文本的大小。

我也明白字体大小和其他因素也会发挥作用。

我正在寻找的是这样的:

<div style="width:xxx; float:left;">Label 1</div><input type="checkbox"/><br/>
<div style="width:xxx; float:left; clear:left;">Longer Label 2</div> <input type="checkbox"/><br/>
<div style="width:xxx; float:left; clear:left;">Even Longer Label 3</div> <input type="checkbox"/><br/>

3 个答案:

答案 0 :(得分:1)

如果您知道要使用的字体,则需要了解imagettfbbox()

但是,是的,不要给宽度和右对齐文本,或使用像Bootstrap或960.gs这样的网格系统布局。

答案 1 :(得分:0)

我的理解是你试图将字符串的长度与相应的尺寸相匹配。正如您已经指出的那样,只有考虑字体类型和大小才能实现。假设你有一个单行间距字体,你必须将$ length乘以一个因子。

如果您使用的不是单行间距字体,那么真正凌乱的部分会开始......

答案 2 :(得分:0)

此外,如果您将display属性的值设置为inline-block div元素的行为类似于块元素,但它的宽度会随着元素的变化而变化 display: inline-block