Reputation: 367
I'm trying to find a php function that will take a string and a length number, and at that length in the string will cut it, but not if its in the middle of a word, only if its a space, and will check for the nearest space to do so.
It also would continuously do this and return the array of strings with however long the original string was (IE if the original string was about 240 in length and I wanted to cut around 80, the array would be 3 strings large).
I found a couple of functions but none that does that, and I'm having trouble creating my own.
Upvotes: 3
Views: 227
Reputation: 99909
The wordwrap
function splits a string in lines of up to a given number of characters long.
It takes care of words and won't cut in the middle of a word (unless to tell it to).
You can use it and split the string by lines:
$string = wordwrap($string, 42);
$lines = explode("\n", $string);
Upvotes: 3
Reputation: 360572
Use wordwrap()
to do the wrapping, then you can explode()
the string on the linebreaks to get it in array format.
Upvotes: 1
Reputation: 57184
You want wordwrap().
wordwrap (string $str, int $width = 75, string $break = "\n" , bool $cut = false)
The important thing is to make sure you have $cut = false
so it doesn't slice words into two parts (which is the default setting).
Upvotes: 2