Jump to content

chunk_split - stop split word


swamp

Recommended Posts

Hi,

 

i've got this code to split up my articles. I want to split the article into different divs after around 400 characters. I also would like it if it didn't split a word half way through.

 

<?php
$str = $post;
echo chunk_split($str,400,"...");
?>

 

Any help much appreciated

 

Thanks

Link to comment
Share on other sites

You would need to create a function that would count to how ever length you want it to split up the string, and if the end character a space, then return the string else you can loop forward until you find the next instance of a space.

Link to comment
Share on other sites

<pre>
<?php
$data = <<<DATA
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam dictum, lacus euismod aliquet vehicula, tellus eros venenatis massa, ultrices aliquam magna massa ut felis. Suspendisse eget eros. Morbi malesuada neque in felis. Quisque volutpat. Donec eu elit vel velit dapibus aliquet. Sed condimentum sagittis est. Ut ultrices, ipsum eget feugiat vestibulum, nibh orci mollis purus, id blandit metus odio sollicitudin lorem. In hac habitasse platea dictumst. Integer erat. Proin blandit. Vestibulum dignissim neque et mi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum ullamcorper, diam ut tincidunt facilisis, erat erat posuere tortor, id pellentesque velit elit ut mauris. Fusce at odio quis pede tincidunt tincidunt. Vivamus mollis vulputate lacus.

Duis consequat. Aliquam posuere leo non metus commodo dictum. Donec iaculis consectetuer pede. Nulla facilisi. In sed augue. Suspendisse commodo, massa elementum pellentesque varius, justo nisi lobortis est, id placerat magna felis in tellus. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec pharetra risus quis quam. Nullam elit arcu, scelerisque at, cursus quis, varius non, leo. Suspendisse non nibh at metus tempor dictum. Mauris ante odio, pellentesque ac, consectetuer consectetuer, porta ac, nisl. In hac habitasse platea dictumst. Aliquam sit amet elit vel magna lacinia tristique. Nullam justo. Etiam hendrerit molestie massa. Morbi risus nisi, commodo facilisis, vulputate ac, hendrerit mollis, massa. Suspendisse adipiscing odio a enim. Aenean id erat vel orci hendrerit gravida. Quisque semper elementum tellus. Vestibulum metus libero, fermentum sit amet, facilisis ut, facilisis et, nulla. 
DATA;

$pieces = preg_split('/(.{390,410})(?=\s)/s', $data, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
foreach ($pieces as $piece) {
	$piece = trim($piece);
	echo '<b>', strlen($piece), '</b>: ', $piece, '<hr>';
}
?> 
</pre>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.