Get first n characters of a string

前端 未结 19 1396
萌比男神i
萌比男神i 2020-11-22 13:06

How can I get the first n characters of a string in PHP? What\'s the fastest way to trim a string to a specific number of characters, and append \'...\' if needed?

19条回答
  •  日久生厌
    2020-11-22 13:30

    If there is no hard requirement on the length of the truncated string, one can use this to truncate and prevent cutting the last word as well:

    $text = "Knowledge is a natural right of every human being of which no one
    has the right to deprive him or her under any pretext, except in a case where a
    person does something which deprives him or her of that right. It is mere
    stupidity to leave its benefits to certain individuals and teams who monopolize
    these while the masses provide the facilities and pay the expenses for the
    establishment of public sports.";
    
    // we don't want new lines in our preview
    $text_only_spaces = preg_replace('/\s+/', ' ', $text);
    
    // truncates the text
    $text_truncated = mb_substr($text_only_spaces, 0, mb_strpos($text_only_spaces, " ", 50));
    
    // prevents last word truncation
    $preview = trim(mb_substr($text_truncated, 0, mb_strrpos($text_truncated, " ")));
    

    In this case, $preview will be "Knowledge is a natural right of every human being".

    Live code example: http://sandbox.onlinephpfunctions.com/code/25484a8b687d1f5ad93f62082b6379662a6b4713

提交回复
热议问题