我知道各种方法来截断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