我知道各種方法來截斷HTML字符串到一定的長度,包括/不包括作爲結果的一部分的HTML標籤和/或截斷,同時保留整個單詞和什麼。我的問題是,如果字符串包含特殊字符如–
或&
如何用特殊字符截斷HTML?
我需要截斷一個字符串爲100個字符(或少一些,否則如果它會在特殊字符中間截斷)。現在我有一個函數:
$result= truncateIfNecessary(strip_tags($fullText), 100); //ignore HTML tags
function truncateIfNecessary($string, $length) {
if(strlen($string) > $length) {
return substr($string, 0, $length).'...';
} else {
return $string;
}
}
但如果字符串的是一樣的東西text text – text
(在頁面上顯示爲:在–
text text - text
和$length
瀑布,它返回text text &nda...
,顯示完全一樣的,當我需要它返回text text...
編輯:
(張貼的答案)
它們轉換成字符,然後截斷,然後再轉換回HTML標籤。 – Pitchinnate
http://php.net/manual/en/function.html-entity-decode.php – user2180613
@Pitchinnate幾乎可以工作,但不是完全適用於所有html字符 - 例如:•沒有轉換 – WOUNDEDStevenJones