Search code examples
phptextshort

Short Text, PHP


I got this function:

function shorter($text, $chars_limit) {
  if (strlen($text) > $chars_limit) 
    return substr($text, 0, strrpos(substr($text, 0, $chars_limit), " ")).'...';
  else return $text;
}

and if I use echo shorter($input, 11) it works ok, but if there are some white spaces in the input, otherwise for the input looking like:

wwwwwwwwwww

The function will change this into:

... (3 dots).

I wan't it to be changed into something like this:

www ...

Have you got any ideas how to rebuild this script? Thank you in advance.


Solution

  • Im assuming you just want to take an input. If it is longer than X then cut it off at X and add "...".

    // Start function
    function shorter($text, $chars_limit)
    {
        // Check if length is larger than the character limit
        if (strlen($text) > $chars_limit)
        {
            // If so, cut the string at the character limit
            $new_text = substr($text, 0, $chars_limit);
            // Trim off white space
            $new_text = trim($new_text);
            // Add at end of text ...
            return $new_text . "...";
        }
        // If not just return the text as is
        else
        {
        return $text;
        }
    }
    

    I didn't test this, but it should work. :)