4

我有一个 mysql 数据库和一个充满信息的表,特别是一列产品描述。此列在我的脚本中使用了两次。其最大长度为 1000 个字符。

此信息的用途之一是对任何给定产品的简要描述。我想显示我刚才提到的描述的简化版本,例如 200 个字符长。

现在,使用 PHP,我想在字符串达到 200 个字符的位置附加“...”(3 个点)。所以基本上只显示前 200 个字符。

我该怎么做这样的事情?我相信这将是一项相当简单的任务,但互联网是寻找您不知道名称的东西的好地方:)

如果有人可以在这方面提供帮助,请提供与相关功能相关的示例或一些链接,那就太好了。非常感谢!

4

5 回答 5

7

您可以使用substr实现此目的。

$string = substr($string,0,197) . "...";

于 2012-07-09T08:43:31.283 回答
5

这个处理实际上还不是 200 个字符的字符串。

$string = 'your long string goes here';
if (strlen($string) >= 200) {
    $string = substr($string, 0, 197).'...';
}

来源:php.net/substr

于 2012-07-09T08:44:28.790 回答
5

我可以给你一个用纯 CSS 制作的替代品吗(例如,适合标题)?

overflow: hidden; white-space: nowrap; text-overflow: ellipsis;

如果周围的元素不够长/足够大,则会自动切断太长的文本。

于 2012-07-09T08:46:49.003 回答
4
$string = 'asd';
$maxLength = 200;
if (mb_strlen($string) > $maxLength) {
    $string = mb_substr($string, 0, $maxLength) . "...";
}
于 2012-07-09T08:44:49.970 回答
2

首先只从您的数据库中收集 200 个字符。

$sql = "SELECT LEFT(article, 200) as article WHERE ETC ETC "

然后应用类似这样的东西,但基本上你需要回到前一个单词结束砍掉其余部分并附加一个省略号。

…
于 2012-07-09T08:48:46.370 回答