Dưới đây là một chức năng biến đổi từ một tôi tìm thấy trực tuyến; nó loại bỏ bất kỳ HTML nào và làm sạch một số ký tự MS vui nhộn trước tiên; sau đó thêm một ký tự dấu chấm lửng tùy chọn vào nội dung để cho biết rằng nó được rút ngắn. Nó chia tách chính xác một từ, vì vậy bạn sẽ không có các ký tự dường như ngẫu nhiên;
/**
* Function to ellipse-ify text to a specific length
*
* @param string $text The text to be ellipsified
* @param int $max The maximum number of characters (to the word) that should be allowed
* @param string $append The text to append to $text
* @return string The shortened text
* @author Brenley Dueck
* @link http://www.brenelz.com/blog/2008/12/14/creating-an-ellipsis-in-php/
*/
function ellipsis($text, $max=100, $append='…') {
if (strlen($text) <= $max) return $text;
$replacements = array(
'|<br /><br />|' => ' ',
'| |' => ' ',
'|’|' => '\'',
'|‘|' => '\'',
'|“|' => '"',
'|”|' => '"',
);
$patterns = array_keys($replacements);
$replacements = array_values($replacements);
$text = preg_replace($patterns, $replacements, $text); // convert double newlines to spaces
$text = strip_tags($text); // remove any html. we *only* want text
$out = substr($text, 0, $max);
if (strpos($text, ' ') === false) return $out.$append;
return preg_replace('/(\W)&(\W)/', '$1&$2', (preg_replace('/\W+$/', ' ', preg_replace('/\w+$/', '', $out)))) . $append;
}
Input:
<p class="body">The latest grocery news is that the Kroger Co. is testing a new self-checkout technology. My question is: What’s in it for me?</p> <p>Kroger said the system, from Fujitsu,
Output:
The latest grocery news is that the Kroger Co. is testing a new self-checkout technology. My question is: What's in it for me? Kroger said the …
Nguồn
2011-01-14 14:29:39
một là gì hát? –
* (liên quan) * [Cắt ngắn chuỗi đa thành chuỗi thành ký tự] (http://stackoverflow.com/questions/2154220/truncate-a-multibyte-string-to-n-chars). Các giải pháp có cắt giảm đối với ranh giới từ. Đó là một bản sao nếu bạn không quan tâm đến các câu nhưng chỉ có các từ. – Gordon
có thể trùng lặp: http://stackoverflow.com/questions/79960/how-to-truncate-a-string-in-php-to-the-word-closest-to-a-certain-number-of-charac – jasonbar