如何确定在网页上呈现的字符串的长度(以像素为单位)?

Ksh*_*KJ- 24 html php svg

如果我知道字体大小(12)和字体系列(calibri),有没有办法确定给定字符串渲染后的长度(以像素为单位)?我绝对肯定字体和大小.是否有用于此目的的查找表来确定PHP代码本身的长度?我正在编写一个PHP脚本来动态生成一个SVG图像,其中包含填充了从数据库中提取的数据的各种框.问题是,如果字符串很大,我需要手动包装文本并增加框的大小.

谢谢

kky*_*kyy 18

使用PHP函数imagettfbbox获取给定字符串的边界框的大小.

另一方面,如果您想在客户端处理它,您也可以使用javascript来操作SVG图像.这样,如果客户端具有指定的字体,则无关紧要......


jsn*_*wlr 17

您可以使用PHP GD将字符串渲染为图像并获取结果图像的大小.

如果你使用它,它应该工作:

   list($left,, $right) = imageftbbox( 12, 0, "arial.ttf", "Hello World");

   $width = $right - $left;
Run Code Online (Sandbox Code Playgroud)


Chs*_*y76 5

您的标题和实际职位似乎说的话略有不同。我想您实际上要问的是,是否有可能确定在PHP代码中(在呈现网页之前)在网页上呈现的文本的像素宽度。

如果是这样,答案是“否”。所述字体可能在用户的计算机上不可用;他/他可能已应用了自定义样式表;使用较大的字体;等等...

可以做的是呈现页面使用JavaScript确定宽度(显然,您也可以在其他页面上做到这一点,并希望在此之前没有任何改变)并将其提交回PHP。通过一些巧妙的AJAX处理,您甚至可以在同一页面上执行此操作。

看看这个问题,以获取有关如何在javascript中执行此操作的详细信息。