Do you ever find yourself needing to shorten a string in PHP? Maybe return the first 25 words of a long story? Give this routine a try. It will return the first n words from a string, or the entire string if it is less than n words long.
function shorten_string($string, $wordsreturned) /* Returns the first $wordsreturned out of $string. If string contains fewer words than $wordsreturned, the entire string is returned. */ { $retval = $string; // Just in case of a problem $array = explode(" ", $string); if (count($array)<=$wordsreturned) /* Already short enough, return the whole thing */ { $retval = $string; } else /* Need to chop of some words */ { array_splice($array, $wordsreturned); $retval = implode(" ", $array)." ..."; } return $retval; }
Thanks. Very usefull. Just cut n pasted into my program and ran.
Very usefull
Thanks!
Very useful.
Just saved me that much work. Much thanks.
I’ll definately drink a sip of beer for your health. Thanks for the function ;)
Thanks. Short and simple is the way to go, and now I have a practical example of array_splice to do other stuff with.
Noticed a small typo in your inline comment:
“If string contains more words than $wordsreturned, the entire string is returned.”
should probably read “Unless string contains…”
of “If string contains <= $wordsreturned…”
…aaaaand a typo in my own comment. Go me!
Thanks. You’re right, it should be if string contains fewer words then…
This is really helpful. I had to pick up first name of the user and it worked like charm
Here go another way:
function first_word()
{
preg_match(‘/[^ ]*/’, $username, $matches);
return $matches[0];
}
Great work.
I was looking for such function.
Thank you very much
Nice Function..
That’s exactly what I need. Thanks Ryan! ^_^
thnx
Perfect! Thank you very much, though there is a bug in a code on line: 10. There must be as follows: if (count($array) == $wordsreturned)
Thanks
The < that was there was from WordPress trying to format. It shouldn’t be == though. Let’s say that you want no more than 20 words, but the string only has 5. The if wouldn’t fire to catch that it doesn’t need to do anything.
Thanks A lot!!!!……………….
Use substr function in PHP
$string = substr($string,0,25);
substr would give you the first 25 characters. This gives you the first X words.
Thank you