樹枝只是一個模板引擎,它不會做你想要的。你需要做的是改變你餵養它的數據。
假設Log.entry
是一種返回整個日誌字符串的方法,您可以創建一個類似的方法,比如說Log.entry_50
返回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 |原始}}在你的樹枝模板。
有點不方便的假設:
在這裏,我將承擔所有未關閉標籤相同,但都具有</*>
形式。
// 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);
Ofcourse這將是一個稍微不同的解決方案,如果Log.entry
是可變的,但在這種情況下,只添加了結合上述溶液中的方法。
什麼是*富文本*?它是與HTML標籤的文本?如果第50個字符位於HTML標籤的中間並且將其切斷,該怎麼辦?這不是一個簡單的問題。 – 2014-12-05 23:02:40
是在這種情況下富文本包含HTML標記,是的,我意識到我面臨停止在標籤中間的問題,但這就是爲什麼我試圖接觸到更有經驗的樹枝或PHP用戶:) – Jacob 2014-12-06 08:48:05