我正在尋找將單行換行符替換爲<br>
標籤,但是只能在上下文中允許時使用。只有在上下文允許的情況下用html換行符替換單行換行
例如,考慮以下:
<ul>
<li>cat</li>
<li>dog</li>
<li>fish</li>
<li>horse</li>
</ul>
<br>
標籤不允許許多在上面的代碼中的區域,但在運行通常簡單替換/另外的代碼,例如使用nl2br()
或跑步一個str_replace()
顯然不會遵循這些上下文規則。
對於上面你需要遵循以下規則:
- 換行符前的開始列表標籤應該轉換
- 換行符後的開始列表標籤不應轉換
- 換行符前的開始列表項標籤不應轉換
- 換行符後的開始列表項標籤應該轉換
- 換行符前的關閉列表項目標記應該需要轉換
- b行reaks 後的收盤列表項標籤不應轉換
- 換行符前的關閉列表標籤不應轉換
- 換行符後的閉幕列表標記應該需要轉換
是否有當前可以執行此功能的函數/庫?當然這是一個普遍的問題,所以我想必須有一些東西。
由於風險聽起來粗魯,我認爲'nl2br'不能用於HTML字符串。您應該使用HTML(新行字符不相關)或普通舊字符串(您可以自由地用'
'替換新行)。 你是否有機會在用戶提供的一些輸入上運行這個輸入,它可能包含或不包含HTML? – Grampa 2015-04-06 08:37:48
@Grampa它實際上將運行在HTML上,它已經從用戶輸入的'bbcode'解析出來。我正在使用'htmlpurifier'來自動執行段落,但不幸的是它不能處理單行換行。 – Brett 2015-04-06 09:50:03