【问题标题】:Check if a string longer than xx characters without going through the entire string with strlen()?使用 strlen() 检查是否有超过 xx 个字符而不遍历整个字符串的字符串?
【发布时间】:2017-09-24 04:02:04
【问题描述】:

我正在显示一些带有显示更多链接的非常长的文本字符串。所以我需要一种方法来找出字符串有多长。

我知道我可以简单地使用strlen() 来调整字符串的大小,然后将返回的长度与 50 个字符的限制进行比较,但是对于非常长的字符串,我认为这会拖累性能,尤其是考虑到有将近一千个字符串需要根据用户请求进行衡量。

那么有什么方法可以确定字符串是否超过 50 个字符然后停止?

我知道我可以创建一个内部函数来逐个字符地遍历字符串,但在这种情况下是否有更好的做法,因为我认为这是一个相当普遍的问题?

【问题讨论】:

标签: php string


【解决方案1】:

如果您只需要检查字符串是否超过 50 个字符,那么您可以尝试检查第 50 个字符是否存在。

例如,对于一个 25 个字符长的字符串,我需要知道它是否长于 20 个字符。

    $str = '123456789qwertyuiopasdfgh';
    if($str[20] != '') echo 'It is longer';
    else echo 'It is not';

我不确定它是否比简单的 strlen 更快,但你可以尝试一些性能测试 C:

UPD:另外,请注意索引从 0 开始

【讨论】:

  • 当心,这将在 false 时触发通知。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 2021-11-02
相关资源
最近更新 更多