HTML - 从MySQL数据库中获取LONGTEXT字符串中的行数

时间:2014-07-05 18:52:06

标签: php html mysql

我怎样才能从使用HTML或PHP从MySQL数据库中检索到的LONGTEXT字符串中获取行数?例如,假设我有这样的文字:

  

Lorem ipsum dolor坐下来,精神上的精神。在eleifend的Nullam imperdiet condimentum libero。 Mauris ac justo in purus tempor iaculis vitae at turpis。 Cras quis facilisis libero。 Nam molestie neque id lacus cursus rut​​rum。 Aliquam vestibulum blandit diam,一个地方

我希望能够找出文本占用多少行,或多少“空间”。

它是一行,然而,它显示为3行,所以,我想通过使用PHP执行3之类的操作来获得$num = count_lines($string);,或者更复杂的东西。

这是为了格式化我正在制作的论坛网站,根据文本占用的空间动态更改某些方面

我尝试过这样的事情:

<?php
  $num = substr_count($string, "\n");
?>

<?php
  $num =  count(preg_split('/\n|\r/',$str));
?>

但它们不起作用,因为我从MySQL数据库中获取字符串。

另外,我希望根据边距更改数字。如您所见,行数:

jsfiddle.net/n58z74pgjsfiddle.net/6nkvLzzn中的行数不同,因为文字的格式为margin-right:10cm

那么,有没有办法只使用HTML或PHP来获取字符串中的行数?也许通过计算文本占用的像素数,然后做一些基本的数学运算来找出行数?

3 个答案:

答案 0 :(得分:2)

听起来你只需要文本的高度,获得行数意味着你仍然需要乘以lineHeight。

要获得页面上div的实际宽度(以像素为单位),您只需使用以下JS

即可
document.getElementById("DivID").clientHeight;

在PHP中调整大小会变得更加困难,而且您还必须考虑每次需要调整大小时都必须进行Web调用的事实。 (不是非常网络2.0) PHP(您的服务器)通常不会真正知道用户浏览器的宽度等...用户可以显式调整大小,因此通常应在客户端处理图形和布局。

答案 1 :(得分:1)

如果您从数据库中检索的字符串中没有换行符,那么它在逻辑上不能分为3行。想一想:&#34; line&#34;除了被换行符打破外,还是一个相对的东西。为了知道字符串占用了多少行,您必须知道容器的大小和字母大小将在您的网站中。

如果您澄清了为什么需要知道

,这个问题会更容易回答

答案 2 :(得分:0)

正如其他人所提到的,你不能限制数据库中的行数,因为你不知道有多少文本代表三行。这就是我要做的。检索整个文本并将其放入div中,如此

<div class="post"><?PHP echo $longtext; ?></div>

然后在你的CSS中做这个

div.post {
   height: 3em;
   overflow: hidden
}

这将为您提供三行高(3em)的div并隐藏更多内容。您可能需要调整一个小谎言3.25em左右来调整行间距。