I have a string of 5000 char and I want to split it in small chunks of 200 char, split_str() function does that but I would like the strings chopped at the last full stop in the string rather than cutting a word or sentence in half.
here is an example:
<?php
$str = '<h1>Samsung Z4. smartphone com Tizen. pode estar perto de ser lançado em novo país<h1>';
$arr = str_split($str, 20);
?>
OutPut is:
Samsung Z4. smartpho
But i need it to be smart and give me just 'Samsung Z4.'
$last_space = strpos($str, '. ',4000);
$next_part = substr($str, $last_space);
//var_dump($next_part);
$my_part = substr($str, 0 ,$last_space);
//var_dump($my_part);
$array[] = $my_part;
$str = $next_part;
}
while($last_space);
array_push($array,$str);
Use a loop with strpos. Ensure the period you find is followed by two spaces and then a capital letter (assuming that's your rule for "last full stop in the string), add that to your array of sentences and continue.
Here's a super simple implementation that does what you requested in the comments:
<?php
$str = "Samsung Z4. smartphone com Tizen. pode estar perto de ser lançado em novo país";
$sentences = array();
$sentences = explode(".", $str);
echo $sentences[0];