0

在 php 中,仅显示长度大于 50 个字符的字符串的函数是什么,将其截断为不显示超过 130 个字符并将其限制为一个结果?

例如,假设我在结果集中有 30 行,但我只想显示具有这些参数的最新行。如果最新行有 25 个字符,则不应显示。它应该只显示字符串长度为 50 或更多字符的最新字符串。

4

2 回答 2

1

使用 SQL 查询。为了在 auto_increment 主键(我称之为 id)或创建行的日期/时间(例如 time_created)上找到最新的最大值。

所以我假设表有:id (int), stringVal (string, char(), varchar(), 不管)

SELECT MAX(id),  SUBSTRING(stringVal, 1, 130)
FROM yourTable
WHERE LENGTH(stringVal) > 30

如果必须,将 id 替换为时间字段。如果没有其中一个,您将很难找到最新的,但您总是可以任意选择一排。

--Edit-- 在 PHP 中使用 mysql 函数运行上述查询并获取所需输出的示例

$sql = "SELECT MAX(id),  SUBSTRING(stringVal, 1, 130) FROM yourTable WHERE LENGTH(stringVal) > 30";
$r = mysql_query($sql, $conn); //im hoping $conn or something like it is already set up
$row = mysql_fetch_assoc($r);
$desiredString = $row['stringVal'];
于 2010-11-30T04:32:10.003 回答
0

像这样的事情应该确保您首先按最新项目获取数据排序。break 语句将确保在找到与您的条件匹配的第一个结果后终止循环......

foreach($array_returned_from_query as $row)
{
    if(strlen($row) > 50)
    {
        echo substr($row, 0, 130);
        break;
    }
}
于 2010-11-30T04:03:41.090 回答