2013-02-28 22 views
0

我正在研究允許在同一城市搜索人的功能。通過php簡化搜索的文本簡化

由於我不期待使用地理位置,我有用戶輸入他們的城市。因此,爲了讓人們找到彼此,他們需要輸入相同的城市名稱。

現在,我使用的是區分大小寫的數據庫中,因此字符串需要匹配,所以我想有一個簡化的過程,就像這樣:

- user inputs city "New York" 
    ->new york 
    ->newyork 

我很期待接下來要做的,就是要確保輸入「新yprk」作爲錯字錯誤的人仍然能夠找到彼此。

我不想重新發明輪子,那裏有一個腳本,你知道那種「散列」的話,以便略有不同的單詞計數一樣嗎?

在此先感謝。

回答

0

遺憾的是沒有辦法,如果做到這一點,而不中的地理位置,因爲城市的名字,那些是任意英語單詞,你可以使用某種拼寫檢查庫來產生匹配並運行固定查詢,但由於這些是城市,你需要一個地理位置數據庫。

現在有一個潛在的解決方法,使用城市的世界數據庫作爲拼寫檢查庫的字典,但我不確定這是多麼準確。如果你不希望大量流量只是谷歌使用無級地理編碼或者這是一個自由選擇:

http://wiki.openstreetmap.org/wiki/Nominatim#Reverse%5FGeocoding%5F.2F%5FAddress%5Flookup

它只是不可能沒有某種形式的字典或第三方服務的猜名字。其他方式將包括使用谷歌預測API並加載所有的城市名稱,但當然這也是第三方...