我误解了 strlen() 吗?

Am I misunderstanding strlen()?

我正在尝试正确理解 PHP 中的 strlen() 以制作一个应用程序,其中文本被缩短并以 ...

结尾

我的代码:

  $prize_text = "Learn how to eat pizza TODAY";
          if (strlen($prize_text) > 24) {
        $prize_text = substr($prize_text, 0, 21) . '...';
        }

$prize_text = "Watch Good Day Sunshine Today!";

$prize_text = "abcdefghijklmnopqrstuvwxyz";

为什么一切都不匹配?我想要一个缩短文本然后附加三个点的统一标准。我的代码有什么问题?

错误的工作工具。你想要 CSS 来避免你遇到的破坏性问题。

#element {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

优势

  • 您可以 hide/show 任意文本,而 PHP 发送的文本已经呈现在文档中。
  • 适用于多种情况,而 PHP 是硬编码的。

strlen() 计算视口中不space 字符串占用的字符数。您可以通过将所有字符设为相同的大小写来制作相同的长度 - 无论是小写还是大写,以使所有字符串具有相同的宽度,您可以参考 http://www.ampsoft.net/webdesign-l/WindowsMacFonts.html