有沒有人有一個PHP類,或正則表達式來解析組件的地址?至少,它應該分解成這些組件:街道信息,州,郵編,國家解析一個Steet地址到組件
回答
圖書館/語言不可知的解決方案將使用谷歌的地理編碼器。它可以返回有關給定地址的詳細分解信息。
http://code.google.com/apis/maps/documentation/services.html#Geocoding_Structured
這是很酷的軟件,但似乎並沒有做什麼提問者想要的。它不是給用戶地址的組件,而是將地址標準化。有用,但沒有問到什麼。 – mooreds 2011-03-22 16:22:49
編輯:如果你的數據是所有格式非常類似於使用這只是作爲一個例子。正如Strager指出的那樣,在大多數情況下,爲了有效地使用正則表達式,數據會有太大的變化。
假定你輸入的格式爲:
[Street Name], [State], [ZIP], [Country]
此正則表達式將這樣的伎倆:
m/^(.+?),(.+?),([0-9]+),(.+)$/
不過正則表達式是相當複雜的......如果你要使用這個對於任何重要的事情,我會建議花時間學習正則表達式。我一直覺得這個小抄非常有用:
http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/
下面是解析街道地址的Python version using pyparsing。這不是PHP,但可能會讓您對問題的複雜性有所瞭解。
問題是地址本身有各種形狀和大小,它們不是自我驗證的實體。這意味着如果沒有手工檢查地址(甚至可能容易出錯)或使用某種地址驗證軟件(無論是基於桌面的軟件還是聯機的),您都無法真正知道自己是否做得正確。
有許多地址驗證Web服務可以接收地址並將其分解爲其組成部分,並在結果經過認證有效的情況下以安全的方式進行。
我應該提到我是SmartyStreets的創始人。我們確實解決了驗證問題,其中包括您針對美國地址詢問的功能。我們的旗艦產品是LiveAddress,它是一個address verification web service API。
與SmartyStreets商業廣告的聲音一樣好,請注意 - 這僅適用於美國。 – 2014-01-13 10:50:29
在我們的主頁上正確的是我們說的「USPS地址驗證」。 這是我們的FAQ頁面看: http://smartystreets.com/kb/faq/do-you-verify-international-addresses 下面是谷歌的搜索結果,我們對「美」的網站時 https://開頭www.google.com/search?q=site%3Asmartystreets.com+united+states – 2014-01-13 13:36:17
夠公平的,刪除了我對disqus的評論,但論點仍然認爲,由於這個限制,SStreets只是局部解決一般問題地址驗證提出了這個問題。 – 2014-01-13 14:39:37
- 1. 地址解析
- 2. 用T-SQL解析一個地址
- 3. 解析一個'全名'字符串到一個電子郵件地址
- 4. 解析IPv6地址
- 5. Excel:解析地址
- 6. 宏解析地址
- 7. SQL地址解析
- 8. python:一個預先存在的函數來解析一個電子郵件地址到一個三元組?
- 9. awk從maillog解析唯一IP地址
- 10. 如何將地址解析器地址獲取到支持bean?
- 11. 解析電子郵件地址
- 12. 如何解析的jQuery插件地址
- 13. 用PHP解析電子郵件地址?
- 14. 解析數字地址
- 15. 簡單地址解析器
- 16. CMD解析http地址
- 17. sed和解析MAC地址
- 18. 導軌地址解析器中的多個地址問題
- 19. 如何使兩個數組列表地址解析Android中
- 20. 解析JSON數據到一個數組
- 21. 如何做一個if語句來解析URL到某個IP地址?
- 22. PHP解析主機+ IP到IP地址的唯一
- 23. 解析一個PHP數組到一個JavaScript數組
- 24. 解析一個json數組到一個javascript數組?
- 25. 解析郵件地址到聯繫人的姓名
- 26. nsxmlparser一個接一個地解析?
- 27. 解析普通電子郵件地址分爲兩個部分
- 28. 如何找到解析爲一個IP地址的所有域名?
- 29. 解析一個NSURL郵件到
- 30. iPhone - 解析plist文件到一個數組沒有成功
+1看起來像一個很好的資源。但請記住,它可能允許解析部分地址,例如,如果您只給出國家和州,那麼對於這種部分信息可能沒問題,而如果您正在構建需要的應用程序要使用郵寄地址,那種開放式的補貼可能會讓你感到厭煩。*聳聳肩* – Kzqai 2009-11-16 21:43:53
難道你不能只是驗證解析的結果嗎?也就是說,如果你不介意可能會觸及谷歌。 – 2009-11-17 06:16:46