2009-04-21 151 views
1

對於我們用PHP和MySQL構建的公司Intranet,我想添加一個區域,員工可以在其中張貼自己的簡短文檔 - 幾段文字和圖像。將純文本輸入轉換爲HTML

將這種純文本輸入轉換爲HTML段落,項目符號列表,鏈接等的最佳方式是什麼?

說明性:此內容將以在辦公室地圖上點擊員工辦公桌時出現的模式顯示,因此單獨的維基或類似的內容不起作用。

回答

5

你可以實現一些非常簡單的維基式標記,雖然這裏的「簡單」可能會有所不同;考慮使用諸如Markdown之類的東西來加速這個過程。

如果您的技術人員不是很專業,您可以嘗試使用類似FCKeditorTinyMCE的簡單的「富文本編輯器」類型控件集成到頁面中,從中可以刪除/禁用多餘的控件。這爲用戶提供了更熟悉的所見即所得風格行爲。

在任何情況下,您都可以執行一些簡單的白名單來限制HTML允許的子集。

0

公司維基頁面對此很有幫助,並且使用戶可以很容易地對其進行格式化。一些開源軟件也是如此。

4

用最簡單,最直觀的解決方案有很多事情要說。 Stackoverflow是一個程序員社區,所以人們對這個「Markdown」標記非常舒服。

但是爲了讓普通人不習慣使用任何類型的標記進行打擾,那麼最基本的解決方案可能是最好的,因此他們在鍵入它時看到的東西之間絕對是最小的差異中,以及它在網站上的結果。沿

$html = "<p>" 
    . preg_replace("\n\r?\n", "</p><p>", htmlspecialchars($text)) 
    . "</p>"; 

線的東西它不具有任何格式,只是一個空行創建了一個段落決裂,而是取決於觀衆,例如,如果它是一個普通觀衆,你會發現這是一個更好的主意。如果您向非技術人員提供格式化的標記語法,您可能會發現它會讓他們感到困惑,並且他們不正確地使用它,並且弄亂了某些東西,需要幫助,或者您可能會發現他們在格式化上過度使用,使用盡可能多的文本儘可能的樣式。

在我的角色中,我維護一個MediaWiki wiki作爲這家公司的內聯網,並且注意到一般來說,儘管擁有一個wiki是一個好主意,但它的標記語言並不適合普通的非技術用戶,他們中的很多人都喜歡用MS Word寫東西,因爲這對他們來說很熟悉,然後將Word文檔上傳到wiki。

另一種選擇是wiki軟件中的所見即所得編輯控件。它需要很好,並儘可能接近「實際」的所見即所得。在將服務器端過濾出來的預覽中看起來應該不太可能,因爲有人會找到辦法做到這一點。

如何讓非技術人員在頁面之間創建鏈接是另一個您可能會覺得複雜的問題。