在我的應用程序中,我正在使用PHP處理郵件文本。對於某些郵件客戶端(如sina.com)發送錯誤標題。例如,他們正在發送HTML郵件,但將頭部Content-Type作爲text/plain發送。檢測純文本或html
現在,對於這些郵件,我的應用程序正在將HTML視爲文本。在PHP中,如何檢測文本是否包含html文本?
在我的應用程序中,我正在使用PHP處理郵件文本。對於某些郵件客戶端(如sina.com)發送錯誤標題。例如,他們正在發送HTML郵件,但將頭部Content-Type作爲text/plain發送。檢測純文本或html
現在,對於這些郵件,我的應用程序正在將HTML視爲文本。在PHP中,如何檢測文本是否包含html文本?
是的,你可以使用strip_tags()
和比較過濾後的郵件正文與原始郵件正文有什麼區別,但不要忘記,純文本中可能有HTML標籤作爲普通文本,我認爲strip_tags()
將刪除這些標籤也是。
對不起@ Wh1T3h4Ck5,沒有讀你的整個答案。刪除我的評論。 – Knarf 2011-03-29 07:35:49
使用[strip_tag](http://php.net/manual/en/function.strip-tags.php)並將其作爲文本發送,或者您可以比較此功能前後的字符串 – diEcho 2011-03-29 06:44:37
從哲學角度查看,你的應用程序**不應該**嘗試糾正*明顯不正確的* MIME頭。如果郵件標記爲「text/plain」,那麼您應該將其視爲「text/plain」,* not *「text/html」。內容類型嗅探是使IE成爲安全噩夢的許多因素之一,並且你不想走上同一條路。 – Charles 2011-03-29 06:45:56
不是一個確切的解決方案,但是您可以使用strip_tags來僅製作所有內容文本。另一種選擇是使用任何html標籤的正則表達式,但我不夠熟練地用正則表達式來編寫它。 :) – 2011-03-29 06:46:54