Php 如何找到字符串的物理长度?

Php 如何找到字符串的物理长度?,php,javascript,html,css,Php,Javascript,Html,Css,在我的网站中,用户的用户名总是以“3”的字体显示在每个页面的顶部(以及网站标题、其他页面链接等) 我花了很长时间才弄明白这一点,但最终我注意到,用户名很长的用户最终弄乱了每一页顶部的间距,所有文本都被压下一行,使整个事情看起来很丑陋(它只对个人用户可见,因为它是他们的用户名,但我不希望我的任何用户看到它) 我不是问如何找到他们名字中的字符数——我想知道的是如何确定他们名字将占用的实际空间量,如果太长,将字体大小减少到2,甚至1(如果需要) 一个简单的strlen()之所以不起作用,是因为潜在的空

在我的网站中,用户的用户名总是以“3”的字体显示在每个页面的顶部(以及网站标题、其他页面链接等)

我花了很长时间才弄明白这一点,但最终我注意到,用户名很长的用户最终弄乱了每一页顶部的间距,所有文本都被压下一行,使整个事情看起来很丑陋(它只对个人用户可见,因为它是他们的用户名,但我不希望我的任何用户看到它)

我不是问如何找到他们名字中的字符数——我想知道的是如何确定他们名字将占用的实际空间量,如果太长,将字体大小减少到2,甚至1(如果需要)

一个简单的strlen()之所以不起作用,是因为潜在的空间差异(“悲剧狄俄尼索斯”比“HERSHEYFEVER”占据的空间要小,尽管前者有更多的角色)


大量的谷歌搜索不断地给我留下更多的字符计数方法,因此我一无所知。

要在服务器上做到这一点根本不可能


相反,请使用Javascript获取元素的实际宽度,然后减小其字体大小。

您不能使用PHP进行此操作,因为这在很大程度上取决于前端样式(字体系列、字体大小、字体样式等)。您可以使用jQuery确定元素长度,并在需要时应用某些功能:

HTML

<span id="box"><?=$yourString?></span> 

或者,如果你想对所有元素应用一些东西,告诉你怎么做。

我会把它扔掉,但是如果你把username块包装在一个元素中并给它一个最大宽度,它可能会解决你的问题

<span style="max-width: 50px; overflow: hidden;">The Username Goes Here</span>
用户名在这里

您无法知道客户端的字体。请使用CSS和Javascript。
<span style="max-width: 50px; overflow: hidden;">The Username Goes Here</span>