Зачем вообще мне вздумалось разрезать строки, как пример у нас есть небольшой блок в котором мы хотим хранить темы последних новостей или последние сообщения с форума. Обычно такие блоки не больших размеров, а вот строки которые должны в них помещаться могут быть какие угодно. Вот для этого и может понадобиться разрезать строку на части, прикрепить в конце «…» и вывести в блоке.
И так, все можно сделать банально при помощи str_split
<?php function StringSplit($str,$n){ $new = ''; if (strlen($str) > $n){ $array = str_split($str); for($i=0 ; $i <= $n; $i++){ $new .= $array[$i]; } $new .= '...'; } return $new; } echo StringSplit('Hellow World. I hope u will be there!','17'); ?>
результат будет
Hellow World. I ho…
Все работает, но вот, то, что слово hope было так зверски разрезано не очень хорошо, поэтому попробуем немного по другому:
<?php function Transform($string,$n) { $new = ''; if(strlen($string) > $n){ $array = explode(' ',$string); for($i=0; $i < count($array)-1; $i++){ if($i == 0){ $new .= $array[$i]; }else{ $new .= ' '.$array[$i]; } } if (strlen($new) > $n){ $new = Transform($new,$n); }else{ $new .= '...'; } }else{ $new .= $string; } //echo $new.'<br>'; return $new; } echo Transform('Hellow World. I hope u will be there!','17'); ?>
Результат будет:
Hellow World. I…