我有很多要導入的HTML數據,它使用大寫的標記和屬性名稱。不幸的是,接收系統不允許這樣做,堅持認爲它們都是小寫字母。如何在PHP中將HTML <TAGS>轉換爲<tags>?
如何安全地更改所有標籤和屬性名稱?
我會跳轉到preg_replace_callback的正則表達式,但我知道在解析HTML時最終會非常棘手 - 重新創建輪子。
是否有DOMDocument或其他更安全的解決方案?
我有很多要導入的HTML數據,它使用大寫的標記和屬性名稱。不幸的是,接收系統不允許這樣做,堅持認爲它們都是小寫字母。如何在PHP中將HTML <TAGS>轉換爲<tags>?
如何安全地更改所有標籤和屬性名稱?
我會跳轉到preg_replace_callback的正則表達式,但我知道在解析HTML時最終會非常棘手 - 重新創建輪子。
是否有DOMDocument或其他更安全的解決方案?
正如@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>
有沒有任何方法可以在不包含'<!DOCTYPE'和'
'包裝的情況下解壓縮? OBV。我可以正則表達式,但只是想知道... – artfulrobot@artfulrobot是的,我雖然你會問這個,這就是爲什麼我在我的答案中添加了一個鏈接,那裏的評論does not像函數附加的文檔類型,訪問該鏈接順便說一句,它會在您使用此功能時自動附加它,您只能使用解決方法 – user1978142
嘗試使用DOM文檔只加載HTML,然後立即將其保存。看看是否有效。 –
試試這個'/ <\([^>] * \)>/<\L\1>/g'正則表達式參考:http://vim.wikia.com/wiki/Changing_all_HTML_tags_to_lowercase –
可能的重複: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