既然ICann允許非拉丁字符域名,我應該關心電子郵件驗證嗎?目前,我的網站正在使用php函數來確保在電子郵件地址的每個段中設置一些字母數字字符集。這些其他字符集,例如西里爾文,阿拉伯文和中文是否會通過驗證?有沒有建議使用PHP功能?非拉丁郵件地址驗證
11
A
回答
0
我打算推薦使用filter_var()
和FILTER_VALIDATE_EMAIL
過濾器。但在谷歌搜索後,它變成了doesn't support multi-byte characters呢。現在看來,最好的辦法是strip out non-latin characters並對此進行通常的驗證(儘管checkdnsrr顯然會失敗,因爲您已經通過刪除非拉丁字符並將它們替換爲拉丁等號來更改域名,所以如果您使用它來驗證電子郵件域的MX記錄,那麼您將需要暫時禁用該記錄)。
+0
即使處理非多字節字符,FILTER_VALIDATE_EMAIL也顯得過於嚴格。 – 2010-05-25 06:17:27
1
我認爲最終最好的方法是使用正確的IDN函數將傳入的字符串轉換爲ACE字符串(xn--xyz-blah.com
)。如果該過程起作用,則域名是有效的。如果不是,它不是。
有一個名爲idn_to_ascii()
的PHP函數執行此操作,但它需要額外的庫。您必須查看它是否在您的系統上可用。
似乎還有一個名爲idn
的外部Linux命令進行IDN轉換。不過,我對此還不甚瞭解。
如果您只想使用PHP內置方法,delfuego會在this question中提供一個非常好的正則表達式。
相關問題
- 1. 驗證非拉丁字符網址
- 2. 郵件地址驗證JAVA
- 3. 爲非拉丁Web地址配置WampServer
- 4. 非公共電子郵件地址驗證
- 5. OSCLASS:驗證電子郵件地址
- 6. 驗證電子郵件地址
- 7. python/django中的郵件地址驗證
- 8. 電子郵件地址輸入驗證
- 9. ZF2電子郵件地址驗證器
- 10. 電子郵件地址驗證狀態
- 11. 驗證電子郵件地址
- 12. iOS電子郵件地址驗證
- 13. ListView驗證電子郵件地址
- 14. 驗證電子郵件地址(域名)
- 15. 在Dart驗證電子郵件地址?
- 16. 電子郵件地址驗證
- 17. ASP.NET的電子郵件地址驗證
- 18. 如何驗證電子郵件地址
- 19. 電子郵件地址驗證,如何?
- 20. 如何驗證電子郵件地址
- 21. C#電子郵件地址驗證
- 22. 驗證電子郵件地址失敗
- 23. 目標電子郵件地址驗證
- 24. 重寫jQuery驗證插件電子郵件地址驗證
- 25. 網址編碼非拉丁字符
- 26. 554郵件被拒絕:電子郵件地址未驗證
- 27. 美國地址驗證(郵編+ 4)
- 28. 地址驗證
- 29. 地址驗證
- 30. 地址驗證
+1 ex:'info @müller.de' – 2010-05-24 18:24:30
@John Conde:你已經輸入了它,請發佈它,以便我們可以註冊除了你的評論以外的東西。 – salathe 2010-05-24 19:49:05
嗯,這不是一個很好的解決方案,但至少它解釋了PHP目前站在這個地方。希望發問者爲他們以前的問題選擇一些解決方案。他們有一些很好的答案。 – 2010-05-24 20:13:57