길이가 제한되지 않은 여러 텍스트 항목을 표시하는 웹 페이지가 있습니다. 새로운 라인으로가는 것을 피하기에는 너무 길면 자동으로 절단됩니다. 이것은 그들 인하 PHP 함수입니다 :문장 단축 알고리즘 문제
아래 이미지에서 볼 수 있듯이function cutSentence($sentence, $maxlen = 16) {
$result = trim(substr($sentence, 0, $maxlen));
$resultarr = array(
'result' => $result,
'islong' => (strlen($sentence) > $maxlen) ? true : false
);
return $resultarr;
}
, 결과는 괜찮지 만, 몇 가지 예외가있다. 여러개의 M을 포함하는 문자열 (그것들을 고려해야한다)은 개행 문자로 갈 것이다.
지금 당장은 모든 문자가 이미 16 문자 밖에 안되며 이미 매우 낮아서 읽기가 어렵습니다.
더 많은 공백이 필요한 문장과 더 넓은 문자를 포함하는 문장이 더 적은 수의 문자로 잘릴 수 있는지 확인하고 싶습니다. (CSS 속성 텍스트를 사용하지 마십시오. -overflow : ellipsis는 널리 지원되지 않기 때문에 "..."을 클릭하여 전체 항목에 연결할 수 없으며 모든 비용이 필요합니다.)
미리 감사드립니다.
당신이하는 일은 모범 사례가 아닙니다 ... PHP는 UI와 스타일에 대해 아무 것도 모릅니다. 그래서 최고의 텍스트 너비를 계산할 수 없습니다 ... CSS/Javascript를 사용하십시오. '더보기'에 대한 링크를 추가하는 것은 귀하의 질문과 관련없는 또 다른 이야기입니다. –
또한 UTF-8 코드를 처리하는 것 같으며 중간 코드 포인트에서 문자열을 자르지 않기 위해 아무 것도 준비하지 않았습니다. 사실, 그것을 생각해 보러 오십시오. 문자를 결합하면 그러한 일이 일반 감각에서 분명히 * 사소한 것입니다. –