2014-06-28 70 views
0

我有很多要導入的HTML數據,它使用大寫的標記和屬性名稱。不幸的是,接收系統不允許這樣做,堅持認爲它們都是小寫字母。如何在PHP中將HTML <TAGS>轉換爲<tags>?

如何安全地更改所有標籤和屬性名稱?

我會跳轉到preg_replace_callback的正則表達式,但我知道在解析HTML時最終會非常棘手 - 重新創建輪子。

是否有DOMDocument或其他更安全的解決方案?

+1

嘗試使用DOM文檔只加載HTML,然後立即將其保存。看看是否有效。 –

+0

試試這個'/ <\([^>] * \)>/<\L\1>/g'正則表達式參考:http://vim.wikia.com/wiki/Changing_all_HTML_tags_to_lowercase –

+0

可能的重複:http://stackoverflow.com/questions/12229795/ convert-all-html-tags-to-lowercase,http://stackoverflow.com/questions/5732628/how-to-lowercase-only-html-elements,http://stackoverflow.com/questions/10326880/converting-大寫-html-tags-to-lowercase – hutchbat

回答

1

正如@niet建議的那樣,您可以嘗試使用DOMDocument然後保存並嘗試輸出它。

考慮這個例子:

​​

應該產生這樣的:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html><body><div class="container"><h1>Headers</h1><p>This is paragraph one</p></div></body></html> 
+0

有沒有任何方法可以在不包含'<!DOCTYPE'和''包裝的情況下解壓縮? OBV。我可以正則表達式,但只是想知道... – artfulrobot

+0

@artfulrobot是的,我雖然你會問這個,這就是爲什麼我在我的答案中添加了一個鏈接,那裏的評論does not像函數附加的文檔類型,訪問該鏈接順便說一句,它會在您使用此功能時自動附加它,您只能使用解決方法 – user1978142

相關問題