【问题标题】:strlen function in phpphp中的strlen函数
【发布时间】:2013-06-11 10:20:35
【问题描述】:

我在数据库中有一些项目如下

Item       Description
--------------------------
Item 1     Some text here
Item 2     Some text
Item 3     Some text here
Item 4     Some 
Item 5     Some text here

这里的客户要求是,如果描述超过 15 个字符,那么我们应该只显示 15 个字符并且应该显示一些虚线(......)。如果描述少于 15 个字符,我们将显示全文(现在应该没有虚线)

为此,我编写了以下代码。

<?php                                                           
    if(strlen($row['description'])>15) {
        echo mb_substr($row['description'],0,15,"UTF-8");
        echo" . . . . .";
    }
    else
    {
        echo $row['description'];
    }
?>

在英语语言的情况下,代码工作正常,但在日语的情况下,它会产生问题。意味着即使文本少于 15 个字符,虚线也会显示(仅在少数情况下)

可能是什么问题?

【问题讨论】:

    标签: php strlen


    【解决方案1】:

    在处理多字节字符时,应该使用mb_xxx函数,这里是strlen的实现:mb_strlen

    编辑:您可以阅读有关多字节字符串函数的更多信息:http://www.php.net/manual/en/ref.mbstring.php

    【讨论】:

    • 太棒了!如果一切正常,您可以接受答案。
    【解决方案2】:

    使用mb_strlen(),因为它会在处理多字节字符集时返回正确的长度。

    【讨论】:

      【解决方案3】:

      它会帮助你............

      <?php 
      
      if(mb_strlen($row['description'])>15) {
      
          echo mb_substr($row['description'],0,15,"UTF-8");
      
          echo" . . . . .";
      
      }
      
      else
      
      {
      
          echo $row['description'];
      
      }
      

      ?>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-14
        • 2020-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多