Short Text, PHP

Lucas picture Lucas · Sep 8, 2011 · Viewed 12.9k times · Source

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.

Answer

Adam picture Adam · Sep 8, 2011

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. :)