在 php 中,仅显示长度大于 50 个字符的字符串的函数是什么,将其截断为不显示超过 130 个字符并将其限制为一个结果?
例如,假设我在结果集中有 30 行,但我只想显示具有这些参数的最新行。如果最新行有 25 个字符,则不应显示。它应该只显示字符串长度为 50 或更多字符的最新字符串。
在 php 中,仅显示长度大于 50 个字符的字符串的函数是什么,将其截断为不显示超过 130 个字符并将其限制为一个结果?
例如,假设我在结果集中有 30 行,但我只想显示具有这些参数的最新行。如果最新行有 25 个字符,则不应显示。它应该只显示字符串长度为 50 或更多字符的最新字符串。
使用 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'];
像这样的事情应该确保您首先按最新项目获取数据排序。break 语句将确保在找到与您的条件匹配的第一个结果后终止循环......
foreach($array_returned_from_query as $row)
{
if(strlen($row) > 50)
{
echo substr($row, 0, 130);
break;
}
}