根据“像素”中的长度将字符串拆分为多个部分

时间:2013-12-31 12:44:36

标签: javascript php jquery html

如果在字符串中回显php字符串时,如何将其按长度(以像素为单位)拆分?我知道可以根据字符长度来分割字符串。

<?php
   $strng = str_split($strng, 20);
?>

通过使用上面的代码,我只能将字符串分开一定长度后在屏幕上占用的长度。但有没有办法根据像下面这些标签中回显的字符串长度来分割字符串。

   <label id='label1'><?php echo $strng;?></label>

这个问题可能听起来很疯狂,但我只是想知道有没有可行的方法来做到这一点......只是不使用PHP

2 个答案:

答案 0 :(得分:2)

PHP在服务器上运行,而对前端一无所知。所以PHP不知道CSS或HTML,因此你无法知道字符串的长度。

您可能要做的是手动定义不同数字的长度(以像素为单位),然后计算它。但这根本不是一个好方法:

$digits = [
    "a" => 10,
    "b" => 12,
    // ..
    "H" => 15,
    "l" => 7,
    "o" => 9
];
$str = "Hallo";
$total = 0;
for ($x=0;$x<strlen($str);$x++) {
    $d = $str[$x];
    $total += $digits[$d];
}
echo $total;

要计算前端的数量,最好使用JavaScript ......

答案 1 :(得分:0)

你可以用javascript做到这一点。 最简单的方法是将它放在一个内联组件中,该组件位于可在x轴上滚动的组件中 - 如果文本长度比父(浏览器窗口)宽。 然后,您只需测量内联组件的宽度。 (使用jQuery $(“#myComponent”)。width())

例如,使用jquery:

var e = $("#myElement");
while(e.width()>max_pixels){
    e.html(e.html().substring(0,e.html().length-1));
}