VACIndustries
VACIndustries

Reputation: 367

Is there a PHP function for cutting a string into sections without cutting words?

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

Answers (3)

Arnaud Le Blanc
Arnaud Le Blanc

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

Marc B
Marc B

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

Xeoncross
Xeoncross

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

Related Questions