2013-02-23 68 views
0

通常建議使用filter_var函數驗證PHP中的電子郵件地址 - 但是,開發人員有時選擇使用正則表達式的選項。例如,Codeigniter的電子郵件幫助程序依靠正則表達式來驗證電子郵件地址。電子郵件驗證與RegEx的優勢

選擇正則表達式方法而不是依賴filter_var有什麼優勢?

預先感謝您!

NOTE:這不是一個關於「如何驗證PHP中的電子郵件」的實際問題,而是關於PHP最佳實踐的理論問題。請仔細閱讀以瞭解問題的性質,然後將其標記爲不重複的內容的副本。謝謝!

+2

肯定的答案像http://stackoverflow.com/questions/5855811/how-to-validate-an-email-in-php覆蓋這已經? – mikebabcock 2013-02-23 04:44:16

+1

它可能是一個遺留代碼,尚未從早期版本的CI更新。 ''filter_var()'直到'5.2.0'版本化的條款並不是很久以前纔可用。 – 2013-02-23 04:46:56

+0

@mikebabcock - 呃......不完全:這個答案中沒有任何東西可以直接解決我詢問的問題。不過,非常感謝你提供這個鏈接,這是一個非常有價值的信息。 – 2013-02-23 04:54:00

回答

1

FILTER_VALIDATE_EMAIL將根據標準驗證電子郵件地址。 一樣,如果你將驗證

'0test\'[email protected]' 

與filter_var你會得到輸出爲真。但實際上這不是一個有效的電子郵件,你可以使用正則表達式來跟蹤它。

正則表達式給你很多控制權,但同時正則表達式很複雜,並且filter_var更清晰。

所以你可以決定使用什麼。 :)

+0

- 非常感謝,我想這就是我需要聽到的。 – 2013-02-23 04:56:58

+0

好的答案,但可以通過顯示解決您確定的問題的示例RegEx來改進。 – 2013-02-23 05:14:41

+0

@AaronBrager - 好主意,但我不確定Abhishek是否仍然在線,以擴大他的答案。如果可以的話,我可以請你舉個例子嗎? – 2013-02-23 05:19:29