Intereting Posts

php, количество символов и удалено более 140 символов

Мне нужна функция PHP, которая будет подсчитывать количество символов фразы. Если фраза длиннее символа «140», тогда эта функция должна удалить все остальные символы и добавить три точки в конце фразы. Так, например, у нас есть.

$message= "I am what I am and you are what you are etc etc etc etc" 

ЕСЛИ это длиннее 140 символов, тогда

 $message= "I am what I am and you are what you are..." 

Это возможно? Как? спасибо

Solutions Collecting From Web of "php, количество символов и удалено более 140 символов"

 if(strlen($str) > 140){ $str = substr($str, 0, 140).'...'; } 

Если вы хотите быть «чувствительным к словам» (т. wordwrap() Не сломать середину слова), вы можете использовать wordwrap() .

Этот вариант будет корректно работать с необходимой кодировкой (например, utf-8) и будет пытаться разрезать пробел, чтобы не сломать слова:

 $charset = 'utf-8'; $len = iconv_strlen($str, $charset); $max_len = 140; $max_cut_len = 10; if ($len > $max_len) { $str = iconv_substr($str, 0, $max_len, $charset); $prev_space_pos = iconv_strrpos($str, ' ', $charset); if (($max_len-$prev_space_pos) < $max_cut_len) $str = iconv_substr($str, 0, $prev_space_pos, $charset); $str .= '...'; } 

Это было бы:

 /** * trim up to 140 characters * @param string $str the string to shorten * @param int $length (optional) the max string length to return * @return string the shortened string */ function shorten($str, $length = 140) { if (strlen($str) > $length) { return substr($str, 0, $length).'...'; } return $str; } /** * trim till last space before 140 characters * @param string $str the string to shorten * @param int $length (optional) the max string length to return * @return string the shortened string */ function smartShorten($str, $length = 140) { if (strlen($str) > $length) { if (false === ($pos = strrpos($str, ' ', $length))) { // no space found; cut till $length return substr($str, 0, $length).'...'; } return substr($str, 0, strrpos($str, ' ', $length)).'...'; } return $str; } 

Это функция, которую я часто использую

 function shorten($str,$l = 30){ return (strlen($str) > $l)? substr($str,0,$l)."...": $str; } 

вы можете изменить длину по умолчанию на все, что хотите