Twig는 템플릿 엔진 일 뿐이며 원하는대로 할 수 없습니다. 당신이해야 할 일은 당신이 먹이를주고있는 데이터를 바꾸는 것입니다.
Log.entry
은 전체 로그 문자열을 반환한다고 가정하면 첫 번째 닫는 태그가 발생할 때까지 최소 문자 수를 반환하는 Log.entry_50
과 비슷한 방법을 만들 수 있습니다. (처음 50 자만이 아니라 전체 문자열을 표시 할 수 있기를 원한다고 가정하십시오.)
편리한 가정 : 모든 닫는 태그는 동일합니다. 즉, </X>
을 가정 해 봅시다. 당신의 방법 entry_50
에서 다음 entry
에서 문자열을 받아 수행
// assuming $entry holds the entire string
$closing_tag = '</X>';
$end = strpos($entry, $closing_tag, 49) + 4; //add 4 because you want to include te entire closing tag
return substr($entry,0,$end);
을 이제 {{Log.entry_50을 | 원시}}.
좀 덜 편리한 가정 : 여기
나는 모든 닫는 태그 동일하지만, 모두가 </*>
의 형태가없는 가정합니다. Log.entry
변수이지만,이 경우에는 바로 상기 용액 통합 방법을 추가하는 경우 당연히
// assuming $entry holds the entire string
$closing_tag_beginning = '</';
$closing_tag_end = '>';
$end_start = strpos($entry, $closing_tag_beginning, 49);
$end_end = strpos($entry, $closing_tag_end, $end_start);
return substr($entry,0,$end_end);
약간 다른 솔루션이 될 것이다.
* 리치 텍스트 * 란 무엇입니까? HTML 태그가있는 텍스트입니까? 50 번째 문자가 HTML 태그의 중간에 있고 그것을 자르면 어떻게 될까요? 그것은 단순한 문제가 아닙니다. –
이 컨텍스트의 리치 텍스트는 html 태그를 포함하고 있습니다. 그렇습니다. 나는 태그 중간에 멈추는 문제에 직면 해 있습니다. 그러나 이것이 내가 경험이 많은 나뭇 가지 또는 PHP 사용자에게 접근하려는 이유입니다. – Jacob