Php Разрезать строку и отбросить лишнее

Зачем вообще мне вздумалось разрезать строки, как пример у нас есть небольшой блок в котором мы хотим хранить темы последних новостей или последние сообщения с форума. Обычно такие блоки не больших размеров, а вот строки которые должны в них помещаться могут быть какие угодно. Вот для этого и может понадобиться разрезать строку на части, прикрепить в конце «…» и вывести в блоке.

И так, все можно сделать банально при помощи 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…

Случайные Статьи

Loading…


Количество просмотров :2335

Оставьте коментарий